From 8de13860e8e99bce4e8114b86fff14063d53eb0f Mon Sep 17 00:00:00 2001
From: Elias Pozewaunig <64259275+elpozewaunig@users.noreply.github.com>
Date: Fri, 15 Nov 2024 02:00:19 +0100
Subject: [PATCH] Added web support for all missing splash screen properties

show_image, fullsize and use_filter are now supported too.

bg_color, image and minimum_display_time were already supported previously.
---
 misc/dist/html/full-size.html         | 16 +++++++++++++++-
 platform/web/export/export_plugin.cpp |  6 ++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/misc/dist/html/full-size.html b/misc/dist/html/full-size.html
index 4bb311fe7b16..92b2b82ee7e2 100644
--- a/misc/dist/html/full-size.html
+++ b/misc/dist/html/full-size.html
@@ -52,6 +52,20 @@
 	margin: auto;
 }
 
+#status-splash.show-image--false {
+	display: none;
+}
+
+#status-splash.fullsize--true {
+	height: 100%;
+	width: 100%;
+	object-fit: contain;
+}
+
+#status-splash.use-filter--false {
+	image-rendering: pixelated;
+}
+
 #status-progress, #status-notice {
 	display: none;
 }
@@ -88,7 +102,7 @@
 		</noscript>
 
 		<div id="status">
-			<img id="status-splash" src="$GODOT_SPLASH" alt="">
+			<img id="status-splash" class="$GODOT_SPLASH_CLASSES" src="$GODOT_SPLASH" alt="">
 			<progress id="status-progress"></progress>
 			<div id="status-notice"></div>
 		</div>
diff --git a/platform/web/export/export_plugin.cpp b/platform/web/export/export_plugin.cpp
index 142a8deb86d7..7b836f633769 100644
--- a/platform/web/export/export_plugin.cpp
+++ b/platform/web/export/export_plugin.cpp
@@ -170,6 +170,12 @@ void EditorExportPlatformWeb::_fix_html(Vector<uint8_t> &p_html, const Ref<Edito
 	replaces["$GODOT_HEAD_INCLUDE"] = head_include + custom_head_include;
 	replaces["$GODOT_CONFIG"] = str_config;
 	replaces["$GODOT_SPLASH_COLOR"] = "#" + Color(GLOBAL_GET("application/boot_splash/bg_color")).to_html(false);
+
+	LocalVector<String> godot_splash_classes;
+	godot_splash_classes.push_back("show-image--" + String(GLOBAL_GET("application/boot_splash/show_image")));
+	godot_splash_classes.push_back("fullsize--" + String(GLOBAL_GET("application/boot_splash/fullsize")));
+	godot_splash_classes.push_back("use-filter--" + String(GLOBAL_GET("application/boot_splash/use_filter")));
+	replaces["$GODOT_SPLASH_CLASSES"] = String(" ").join(godot_splash_classes);
 	replaces["$GODOT_SPLASH"] = p_name + ".png";
 
 	if (p_preset->get("variant/thread_support")) {