1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-09 12:50:35 +00:00

Add framework for avoidance of color flash in new windows

This commit is contained in:
Pedro J. Estébanez
2023-01-11 19:14:43 +01:00
parent 73ab514657
commit d0e37cd04c
11 changed files with 55 additions and 3 deletions

View File

@@ -38,6 +38,9 @@ DisplayServer *DisplayServer::singleton = nullptr;
bool DisplayServer::hidpi_allowed = false;
bool DisplayServer::window_early_clear_override_enabled = false;
Color DisplayServer::window_early_clear_override_color = Color(0, 0, 0, 0);
DisplayServer::DisplayServerCreate DisplayServer::server_create_functions[DisplayServer::MAX_SERVERS] = {
{ "headless", &DisplayServerHeadless::create_func, &DisplayServerHeadless::get_rendering_drivers_func }
};
@@ -315,6 +318,23 @@ void DisplayServer::tts_post_utterance_event(TTSUtteranceEvent p_event, int p_id
}
}
bool DisplayServer::_get_window_early_clear_override(Color &r_color) {
if (window_early_clear_override_enabled) {
r_color = window_early_clear_override_color;
return true;
} else if (RenderingServer::get_singleton()) {
r_color = RenderingServer::get_singleton()->get_default_clear_color();
return true;
} else {
return false;
}
}
void DisplayServer::set_early_window_clear_color_override(bool p_enabled, Color p_color) {
window_early_clear_override_enabled = p_enabled;
window_early_clear_override_color = p_color;
}
void DisplayServer::mouse_set_mode(MouseMode p_mode) {
WARN_PRINT("Mouse is not supported by this display server.");
}