Skip to content

Commit

Permalink
Merge pull request #55483 from pycbouh/theme-load-and-order
Browse files Browse the repository at this point in the history
  • Loading branch information
akien-mga authored Dec 2, 2021
2 parents ced0710 + d567ce3 commit 8c1fc56
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
6 changes: 6 additions & 0 deletions main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,9 @@ Error Main::test_setup() {
register_module_types();
register_driver_types();

// Theme needs modules to be initialized so that sub-resources can be loaded.
initialize_theme();

ERR_FAIL_COND_V(TextServerManager::get_singleton()->get_interface_count() == 0, ERR_CANT_CREATE);
TextServerManager::get_singleton()->set_primary_interface(TextServerManager::get_singleton()->get_interface(0));

Expand Down Expand Up @@ -1884,6 +1887,9 @@ Error Main::setup2(Thread::ID p_main_tid_override) {
register_platform_apis();
register_module_types();

// Theme needs modules to be initialized so that sub-resources can be loaded.
initialize_theme();

GLOBAL_DEF("display/mouse_cursor/custom_image", String());
GLOBAL_DEF("display/mouse_cursor/custom_image_hotspot", Vector2());
GLOBAL_DEF("display/mouse_cursor/tooltip_position_offset", Point2(10, 10));
Expand Down
14 changes: 10 additions & 4 deletions scene/register_scene_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1031,6 +1031,16 @@ void register_scene_types() {
GLOBAL_DEF_BASIC(vformat("layer_names/3d_navigation/layer_%d", i + 1), "");
}

if (RenderingServer::get_singleton()) {
ColorPicker::init_shaders(); // RenderingServer needs to exist for this to succeed.
}

SceneDebugger::initialize();

NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SCENE);
}

void initialize_theme() {
bool default_theme_hidpi = GLOBAL_DEF("gui/theme/use_hidpi", false);
ProjectSettings::get_singleton()->set_custom_property_info("gui/theme/use_hidpi", PropertyInfo(Variant::BOOL, "gui/theme/use_hidpi", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESTART_IF_CHANGED));
String theme_path = GLOBAL_DEF_RST("gui/theme/custom", "");
Expand All @@ -1049,7 +1059,6 @@ void register_scene_types() {
// Always make the default theme to avoid invalid default font/icon/style in the given theme.
if (RenderingServer::get_singleton()) {
make_default_theme(default_theme_hidpi, font);
ColorPicker::init_shaders(); // RenderingServer needs to exist for this to succeed.
}

if (theme_path != String()) {
Expand All @@ -1063,9 +1072,6 @@ void register_scene_types() {
ERR_PRINT("Error loading custom theme '" + theme_path + "'");
}
}
SceneDebugger::initialize();

NativeExtensionManager::get_singleton()->initialize_extensions(NativeExtension::INITIALIZATION_LEVEL_SCENE);
}

void unregister_scene_types() {
Expand Down
2 changes: 2 additions & 0 deletions scene/register_scene_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,6 @@
void register_scene_types();
void unregister_scene_types();

void initialize_theme();

#endif

0 comments on commit 8c1fc56

Please sign in to comment.