1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-15 13:51:40 +00:00

Check if DisplayServer supports icons before attempting setting it

This commit is contained in:
Rémi Verschelde
2024-03-05 14:37:15 +01:00
parent 7d80635fce
commit e63de52bdb
2 changed files with 7 additions and 5 deletions

View File

@@ -2885,7 +2885,7 @@ Error Main::setup2() {
}
#if defined(TOOLS_ENABLED) && defined(MACOS_ENABLED)
if (OS::get_singleton()->get_bundle_icon_path().is_empty()) {
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && OS::get_singleton()->get_bundle_icon_path().is_empty()) {
Ref<Image> icon = memnew(Image(app_icon_png));
DisplayServer::get_singleton()->set_icon(icon);
}
@@ -3802,7 +3802,7 @@ bool Main::start() {
#ifdef MACOS_ENABLED
String mac_icon_path = GLOBAL_GET("application/config/macos_native_icon");
if (!mac_icon_path.is_empty()) {
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_ICON) && !mac_icon_path.is_empty()) {
DisplayServer::get_singleton()->set_native_icon(mac_icon_path);
has_icon = true;
}
@@ -3810,14 +3810,14 @@ bool Main::start() {
#ifdef WINDOWS_ENABLED
String win_icon_path = GLOBAL_GET("application/config/windows_native_icon");
if (!win_icon_path.is_empty()) {
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_NATIVE_ICON) && !win_icon_path.is_empty()) {
DisplayServer::get_singleton()->set_native_icon(win_icon_path);
has_icon = true;
}
#endif
String icon_path = GLOBAL_GET("application/config/icon");
if ((!icon_path.is_empty()) && (!has_icon)) {
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && !icon_path.is_empty() && !has_icon) {
Ref<Image> icon;
icon.instantiate();
if (ImageLoader::load_image(icon_path, icon) == OK) {
@@ -3850,7 +3850,7 @@ bool Main::start() {
#endif
}
if (!has_icon && OS::get_singleton()->get_bundle_icon_path().is_empty()) {
if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_ICON) && !has_icon && OS::get_singleton()->get_bundle_icon_path().is_empty()) {
Ref<Image> icon = memnew(Image(app_icon_png));
DisplayServer::get_singleton()->set_icon(icon);
}