summaryrefslogtreecommitdiff
path: root/platform/android/export
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-03-05 13:46:51 +0100
committerRémi Verschelde <rverschelde@gmail.com>2019-03-05 16:36:46 +0100
commitb0f782a0e323434df36276c87dfc4def1a93eade (patch)
tree6ed897ced5a62a50cd7c124cbe98f4bdbf19549b /platform/android/export
parent45e7306b5adec09746fefda902a5414e5b53fdfa (diff)
Disable driver fallback to GLES2 by default
GLES2 is not designed to be a drop-in replacement for the GLES3 backend, so the fallback mode has to be used knowingly. It *can* make sense for simple projects which make sure to handle the differences between both rendering backends, but most users should stick to one supported backend. By making it opt-in, we can now use this parameter to define whether to export ETC textures to Android and iOS when using GLES3 + Fallback. When using GLES3 without Fallback on Android, set the proper min GLES version in the AndroidManifest. Also made the option boolean and renamed it for clarity and to avoid conflict with the previous String option (which would always evaluate as "true" otherwise). Fixes #26569.
Diffstat (limited to 'platform/android/export')
-rw-r--r--platform/android/export/export.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp
index 8ffd355219..aab4bc3883 100644
--- a/platform/android/export/export.cpp
+++ b/platform/android/export/export.cpp
@@ -658,6 +658,8 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
int orientation = p_preset->get("screen/orientation");
+ bool min_gles3 = ProjectSettings::get_singleton()->get("rendering/quality/driver/driver_name") == "GLES3" &&
+ !ProjectSettings::get_singleton()->get("rendering/quality/driver/fallback_to_gles2");
bool screen_support_small = p_preset->get("screen/support_small");
bool screen_support_normal = p_preset->get("screen/support_normal");
bool screen_support_large = p_preset->get("screen/support_large");
@@ -815,6 +817,11 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
}
}
+ if (tname == "uses-feature" && attrname == "glEsVersion") {
+
+ encode_uint32(min_gles3 ? 0x00030000 : 0x00020000, &p_manifest.write[iofs + 16]);
+ }
+
iofs += 20;
}
@@ -1119,6 +1126,9 @@ public:
r_features->push_back("etc");
} else if (driver == "GLES3") {
r_features->push_back("etc2");
+ if (ProjectSettings::get_singleton()->get("rendering/quality/driver/fallback_to_gles2")) {
+ r_features->push_back("etc");
+ }
}
Vector<String> abis = get_enabled_abis(p_preset);