iOS: switch to OpenGLES 2. Enable shaders on new devices

master
Maksim 2020-11-19 12:40:34 +01:00
parent ab7b1f6c83
commit 11899a755b
1 changed files with 37 additions and 18 deletions

View File

@ -245,9 +245,9 @@ void set_default_settings(Settings *settings) {
settings->setDefault("font_shadow", "1");
settings->setDefault("font_shadow_alpha", "127");
settings->setDefault("mono_font_path",
porting::getDataPath("fonts" DIR_DELIM "Cousine-Regular.ttf"));
porting::getDataPath("fonts" DIR_DELIM "Cousine-Regular.ttf"));
settings->setDefault("fallback_font_path",
porting::getDataPath("fonts" DIR_DELIM "DroidSansFallback.ttf"));
porting::getDataPath("fonts" DIR_DELIM "DroidSansFallback.ttf"));
settings->setDefault("fallback_font_shadow", "1");
settings->setDefault("fallback_font_shadow_alpha", "128");
@ -302,7 +302,7 @@ void set_default_settings(Settings *settings) {
settings->setDefault("kick_msg_shutdown", "Server shutting down.");
settings->setDefault("kick_msg_crash",
"This server has experienced an internal error. You will now be disconnected.");
"This server has experienced an internal error. You will now be disconnected.");
settings->setDefault("ask_reconnect_on_crash", "false");
settings->setDefault("kamikaze", "false");
@ -402,8 +402,6 @@ void set_default_settings(Settings *settings) {
settings->setDefault("screenW", "0");
settings->setDefault("screenH", "0");
settings->setDefault("fullscreen", "true");
settings->setDefault("enable_shaders", "false");
settings->setDefault("video_driver", "ogles1");
settings->setDefault("touchtarget", "true");
settings->setDefault("touchscreen_threshold", "20");
settings->setDefault("doubletap_jump", "true");
@ -415,15 +413,15 @@ void set_default_settings(Settings *settings) {
// Set the optimal settings depending on the memory size [Android] | model [iOS]
#ifdef __ANDROID__
// minimal settings for less than 2GB RAM
if (porting::getMemoryMax() < 2) {
// minimal settings for less than 2GB RAM
#elif __IOS__
// minimal settings for 32-bit devices
bool arm = false;
#if defined(__arm__)
#ifdef __arm__
arm = true;
#endif
if (arm) {
// minimal settings for 32-bit devices
settings->setDefault("enable_minimap", "false");
settings->setDefault("enable_clouds", "false");
#endif
@ -441,12 +439,13 @@ void set_default_settings(Settings *settings) {
settings->setDefault("max_block_generate_distance", "1");
settings->setDefault("enable_weather", "false");
#ifdef __ANDROID__
// low settings for 2-4GB RAM
} else if (porting::getMemoryMax() >= 2 && porting::getMemoryMax() < 4) {
// low settings for 2-4GB RAM
#elif __IOS__
// low settings
} else if (([SDVersion deviceVersion] == iPhone5S) || ([SDVersion deviceVersion] == iPhone6) || ([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPodTouch6Gen) ||
} else if (([SDVersion deviceVersion] == iPhone5S) || ([SDVersion deviceVersion] == iPhone6) || ([SDVersion deviceVersion] == iPhone6Plus) ||
([SDVersion deviceVersion] == iPodTouch6Gen) ||
([SDVersion deviceVersion] == iPadMini2) || ([SDVersion deviceVersion] == iPadMini3)) {
// low settings
settings->setDefault("enable_minimap", "false");
#endif
settings->setDefault("client_unload_unused_data_timeout", "120");
@ -464,12 +463,13 @@ void set_default_settings(Settings *settings) {
settings->setDefault("max_block_generate_distance", "2");
settings->setDefault("enable_weather", "false");
#ifdef __ANDROID__
// medium settings for 4.1-6GB RAM
} else if (porting::getMemoryMax() >= 4 && porting::getMemoryMax() < 6) {
// medium settings for 4.1-6GB RAM
#elif __IOS__
// medium settings
} else if (([SDVersion deviceVersion] == iPhone6S) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhoneSE) || ([SDVersion deviceVersion] == iPhone7) || ([SDVersion deviceVersion] == iPhone7Plus) ||
} else if (([SDVersion deviceVersion] == iPhone6S) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhoneSE) ||
([SDVersion deviceVersion] == iPhone7) || ([SDVersion deviceVersion] == iPhone7Plus) ||
([SDVersion deviceVersion] == iPadMini4) || ([SDVersion deviceVersion] == iPadAir)) {
// medium settings
settings->setDefault("enable_minimap", "false");
#endif
settings->setDefault("client_unload_unused_data_timeout", "300");
@ -480,23 +480,33 @@ void set_default_settings(Settings *settings) {
settings->setDefault("active_block_range", "2");
settings->setDefault("max_block_generate_distance", "3");
} else {
// high settings
// high settings
settings->setDefault("client_mapblock_limit", "500");
settings->setDefault("viewing_range", "80");
settings->setDefault("max_block_generate_distance", "5");
if (@available(iOS 13, *)) {
// enable visual shader effects
settings->setDefault("enable_waving_water", "true");
settings->setDefault("enable_waving_leaves", "true");
settings->setDefault("enable_waving_plants", "true");
}
}
// Android Settings
#ifdef __ANDROID__
settings->setDefault("video_driver", "ogles1");
settings->setDefault("enable_shaders", "false");
settings->setDefault("debug_log_level", "error");
// Set font_path
settings->setDefault("mono_font_path", "/system/fonts/DroidSansMono.ttf");
settings->setDefault("fallback_font_path", "/system/fonts/DroidSans.ttf");
// Check screen size
double x_inches = (double) porting::getDisplaySize().X /
(160 * porting::getDisplayDensity());
// Apply settings according to screen size
float x_inches = (float) porting::getDisplaySize().X /
(160.f * porting::getDisplayDensity());
std::string font_size_str_small = std::to_string(TTF_DEFAULT_FONT_SIZE - 1);
if (x_inches <= 3.7) {
@ -523,6 +533,15 @@ void set_default_settings(Settings *settings) {
// iOS Settings
#ifdef __IOS__
// Switch to olges2 with shaders on the new iOS version
if (@available(iOS 13, *)) {
settings->setDefault("video_driver", "ogles2");
settings->setDefault("enable_shaders", "true");
} else {
settings->setDefault("video_driver", "ogles1");
settings->setDefault("enable_shaders", "false");
}
settings->setDefault("debug_log_level", "none");
settings->setDefault("password_save", "true");