Skip to content

Commit f135b02

Browse files
committed
Load only addons after first file scan/import
1 parent 13a0d6e commit f135b02

File tree

1 file changed

+40
-36
lines changed

1 file changed

+40
-36
lines changed

editor/editor_node.cpp

+40-36
Original file line numberDiff line numberDiff line change
@@ -698,24 +698,6 @@ void EditorNode::_notification(int p_what) {
698698
} break;
699699

700700
case NOTIFICATION_READY: {
701-
{
702-
started_timestamp = Time::get_singleton()->get_unix_time_from_system();
703-
_initializing_plugins = true;
704-
Vector<String> addons;
705-
if (ProjectSettings::get_singleton()->has_setting("editor_plugins/enabled")) {
706-
addons = GLOBAL_GET("editor_plugins/enabled");
707-
}
708-
709-
for (int i = 0; i < addons.size(); i++) {
710-
set_addon_plugin_enabled(addons[i], true);
711-
}
712-
_initializing_plugins = false;
713-
714-
if (!pending_addons.is_empty()) {
715-
EditorFileSystem::get_singleton()->connect("script_classes_updated", callable_mp(this, &EditorNode::_enable_pending_addons));
716-
}
717-
}
718-
719701
RenderingServer::get_singleton()->viewport_set_disable_2d(get_scene_root()->get_viewport_rid(), true);
720702
RenderingServer::get_singleton()->viewport_set_environment_mode(get_viewport()->get_viewport_rid(), RenderingServer::VIEWPORT_ENVIRONMENT_DISABLED);
721703

@@ -734,6 +716,8 @@ void EditorNode::_notification(int p_what) {
734716
CanvasItemEditor::ThemePreviewMode theme_preview_mode = (CanvasItemEditor::ThemePreviewMode)(int)EditorSettings::get_singleton()->get_project_metadata("2d_editor", "theme_preview", CanvasItemEditor::THEME_PREVIEW_PROJECT);
735717
update_preview_themes(theme_preview_mode);
736718

719+
started_timestamp = Time::get_singleton()->get_unix_time_from_system();
720+
737721
/* DO NOT LOAD SCENES HERE, WAIT FOR FILE SCANNING AND REIMPORT TO COMPLETE */
738722
} break;
739723

@@ -1042,34 +1026,54 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) {
10421026
}
10431027

10441028
void EditorNode::_sources_changed(bool p_exist) {
1045-
if (waiting_for_first_scan) {
1046-
waiting_for_first_scan = false;
1029+
if (!waiting_for_first_scan) {
1030+
return;
1031+
}
1032+
1033+
waiting_for_first_scan = false;
1034+
1035+
OS::get_singleton()->benchmark_end_measure("Editor", "First Scan");
1036+
1037+
// Reload the global shader variables, but this time
1038+
// loading textures, as they are now properly imported.
1039+
RenderingServer::get_singleton()->global_shader_parameters_load_settings(true);
1040+
1041+
_load_editor_layout();
10471042

1048-
OS::get_singleton()->benchmark_end_measure("Editor", "First Scan");
1043+
if (!defer_load_scene.is_empty()) {
1044+
OS::get_singleton()->benchmark_begin_measure("Editor", "Load Scene");
10491045

1050-
// Reload the global shader variables, but this time
1051-
// loading textures, as they are now properly imported.
1052-
RenderingServer::get_singleton()->global_shader_parameters_load_settings(true);
1046+
load_scene(defer_load_scene);
1047+
defer_load_scene = "";
10531048

1054-
_load_editor_layout();
1049+
OS::get_singleton()->benchmark_end_measure("Editor", "Load Scene");
1050+
OS::get_singleton()->benchmark_dump();
1051+
}
10551052

1056-
if (!defer_load_scene.is_empty()) {
1057-
OS::get_singleton()->benchmark_begin_measure("Editor", "Load Scene");
1053+
if (SurfaceUpgradeTool::get_singleton()->is_show_requested()) {
1054+
SurfaceUpgradeTool::get_singleton()->show_popup();
1055+
}
10581056

1059-
load_scene(defer_load_scene);
1060-
defer_load_scene = "";
1057+
// Start preview thread now that it's safe.
1058+
if (!singleton->cmdline_export_mode) {
1059+
EditorResourcePreview::get_singleton()->start();
1060+
}
10611061

1062-
OS::get_singleton()->benchmark_end_measure("Editor", "Load Scene");
1063-
OS::get_singleton()->benchmark_dump();
1062+
// Load the addons.
1063+
{
1064+
_initializing_plugins = true;
1065+
Vector<String> addons;
1066+
if (ProjectSettings::get_singleton()->has_setting("editor_plugins/enabled")) {
1067+
addons = GLOBAL_GET("editor_plugins/enabled");
10641068
}
10651069

1066-
if (SurfaceUpgradeTool::get_singleton()->is_show_requested()) {
1067-
SurfaceUpgradeTool::get_singleton()->show_popup();
1070+
for (int i = 0; i < addons.size(); i++) {
1071+
set_addon_plugin_enabled(addons[i], true);
10681072
}
1073+
_initializing_plugins = false;
10691074

1070-
// Start preview thread now that it's safe.
1071-
if (!singleton->cmdline_export_mode) {
1072-
EditorResourcePreview::get_singleton()->start();
1075+
if (!pending_addons.is_empty()) {
1076+
EditorFileSystem::get_singleton()->connect("script_classes_updated", callable_mp(this, &EditorNode::_enable_pending_addons));
10731077
}
10741078
}
10751079
}

0 commit comments

Comments
 (0)