mirror of
https://github.com/Relintai/pandemonium_engine.git
synced 2024-12-22 11:56:49 +01:00
Add boot splash display time setting
Implements #8867. (cherry picked from commit dad9683d11ca174cf50d0039fb0f05fb7439984f)
This commit is contained in:
parent
db8e21638a
commit
c7f001ccf5
@ -186,6 +186,9 @@
|
||||
Path to an image used as the boot splash. If left empty, the default Godot Engine splash will be displayed instead.
|
||||
[b]Note:[/b] Only effective if [member application/boot_splash/show_image] is [code]true[/code].
|
||||
</member>
|
||||
<member name="application/boot_splash/minimum_display_time" type="int" setter="" getter="" default="0">
|
||||
Minimum boot splash display time (in milliseconds). It is not recommended to set too high values for this setting.
|
||||
</member>
|
||||
<member name="application/boot_splash/show_image" type="bool" setter="" getter="" default="true">
|
||||
If [code]true[/code], displays the image specified in [member application/boot_splash/image] when the engine starts. If [code]false[/code], only displays the plain color specified in [member application/boot_splash/bg_color].
|
||||
</member>
|
||||
|
@ -1647,6 +1647,13 @@ bool Main::start() {
|
||||
}
|
||||
}
|
||||
|
||||
uint64_t minimum_time_msec = GLOBAL_DEF("application/boot_splash/minimum_display_time", 0);
|
||||
ProjectSettings::get_singleton()->set_custom_property_info("application/boot_splash/minimum_display_time",
|
||||
PropertyInfo(Variant::INT,
|
||||
"application/boot_splash/minimum_display_time",
|
||||
PROPERTY_HINT_RANGE,
|
||||
"0,100,1,or_greater")); // No negative numbers.
|
||||
|
||||
#ifdef TOOLS_ENABLED
|
||||
if (doc_tool_path != "") {
|
||||
Engine::get_singleton()->set_editor_hint(true); // Needed to instance editor-only classes for their default values
|
||||
@ -2117,6 +2124,14 @@ bool Main::start() {
|
||||
|
||||
OS::get_singleton()->set_main_loop(main_loop);
|
||||
|
||||
if (minimum_time_msec) {
|
||||
uint64_t minimum_time = 1000 * minimum_time_msec;
|
||||
uint64_t elapsed_time = OS::get_singleton()->get_ticks_usec();
|
||||
if (elapsed_time < minimum_time) {
|
||||
OS::get_singleton()->delay_usec(minimum_time - elapsed_time);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user