Allow to compile templates without navigation features

This commit is contained in:
Michael Alexsander
2025-03-30 13:20:04 -03:00
parent d52b84e472
commit 556933306a
79 changed files with 665 additions and 220 deletions

View File

@@ -72,25 +72,30 @@
#include "servers/display_server.h"
#include "servers/movie_writer/movie_writer.h"
#include "servers/movie_writer/movie_writer_mjpeg.h"
#include "servers/navigation_server_3d.h"
#include "servers/navigation_server_3d_dummy.h"
#include "servers/register_server_types.h"
#include "servers/rendering/rendering_server_default.h"
#include "servers/text/text_server_dummy.h"
#include "servers/text_server.h"
// 2D
#ifndef NAVIGATION_2D_DISABLED
#include "servers/navigation_server_2d.h"
#include "servers/navigation_server_2d_dummy.h"
#endif // NAVIGATION_2D_DISABLED
#ifndef PHYSICS_2D_DISABLED
#include "servers/physics_server_2d.h"
#include "servers/physics_server_2d_dummy.h"
#endif // PHYSICS_2D_DISABLED
// 3D
#ifndef PHYSICS_3D_DISABLED
#include "servers/physics_server_3d.h"
#include "servers/physics_server_3d_dummy.h"
#endif // PHYSICS_3D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
#include "servers/navigation_server_3d.h"
#include "servers/navigation_server_3d_dummy.h"
#endif // NAVIGATION_3D_DISABLED
#ifndef _3D_DISABLED
#include "servers/xr_server.h"
#endif // _3D_DISABLED
@@ -754,8 +759,12 @@ Error Main::test_setup() {
// Default theme will be initialized later, after modules and ScriptServer are ready.
initialize_theme_db();
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3DManager::initialize_server();
#endif // NAVIGATION_3D_DISABLED
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2DManager::initialize_server();
#endif // NAVIGATION_2D_DISABLED
register_scene_types();
register_driver_types();
@@ -839,8 +848,12 @@ void Main::test_cleanup() {
finalize_theme_db();
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2DManager::finalize_server();
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3DManager::finalize_server();
#endif // NAVIGATION_3D_DISABLED
GDExtensionManager::get_singleton()->deinitialize_extensions(GDExtension::INITIALIZATION_LEVEL_SERVERS);
uninitialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
@@ -3496,10 +3509,16 @@ Error Main::setup2(bool p_show_boot_logo) {
// Default theme will be initialized later, after modules and ScriptServer are ready.
initialize_theme_db();
#if !defined(NAVIGATION_2D_DISABLED) || !defined(NAVIGATION_3D_DISABLED)
MAIN_PRINT("Main: Load Navigation");
#endif // !defined(NAVIGATION_2D_DISABLED) || !defined(NAVIGATION_3D_DISABLED)
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3DManager::initialize_server();
#endif // NAVIGATION_3D_DISABLED
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2DManager::initialize_server();
#endif // NAVIGATION_2D_DISABLED
register_scene_types();
register_driver_types();
@@ -4102,20 +4121,33 @@ int Main::start() {
if (debug_paths) {
sml->set_debug_paths_hint(true);
}
if (debug_navigation) {
sml->set_debug_navigation_hint(true);
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2D::get_singleton()->set_debug_navigation_enabled(true);
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3D::get_singleton()->set_debug_navigation_enabled(true);
#endif // NAVIGATION_3D_DISABLED
}
if (debug_avoidance) {
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2D::get_singleton()->set_debug_avoidance_enabled(true);
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3D::get_singleton()->set_debug_avoidance_enabled(true);
#endif // NAVIGATION_3D_DISABLED
}
if (debug_navigation || debug_avoidance) {
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2D::get_singleton()->set_active(true);
NavigationServer2D::get_singleton()->set_debug_enabled(true);
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3D::get_singleton()->set_active(true);
NavigationServer3D::get_singleton()->set_debug_enabled(true);
#endif // NAVIGATION_3D_DISABLED
}
if (debug_canvas_item_redraw) {
RenderingServer::get_singleton()->canvas_item_set_debug_redraw(true);
@@ -4546,7 +4578,9 @@ bool Main::iteration() {
uint64_t physics_process_ticks = 0;
uint64_t process_ticks = 0;
#if !defined(NAVIGATION_2D_DISABLED) || !defined(NAVIGATION_3D_DISABLED)
uint64_t navigation_process_ticks = 0;
#endif // !defined(NAVIGATION_2D_DISABLED) || !defined(NAVIGATION_3D_DISABLED)
frame += ticks_elapsed;
@@ -4565,8 +4599,12 @@ bool Main::iteration() {
XRServer::get_singleton()->_process();
#endif // XR_DISABLED
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2D::get_singleton()->sync();
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3D::get_singleton()->sync();
#endif // NAVIGATION_3D_DISABLED
for (int iters = 0; iters < advance.physics_steps; ++iters) {
if (Input::get_singleton()->is_agile_input_event_flushing()) {
@@ -4606,15 +4644,21 @@ bool Main::iteration() {
break;
}
#if !defined(NAVIGATION_2D_DISABLED) || !defined(NAVIGATION_3D_DISABLED)
uint64_t navigation_begin = OS::get_singleton()->get_ticks_usec();
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2D::get_singleton()->process(physics_step * time_scale);
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3D::get_singleton()->process(physics_step * time_scale);
#endif // NAVIGATION_3D_DISABLED
navigation_process_ticks = MAX(navigation_process_ticks, OS::get_singleton()->get_ticks_usec() - navigation_begin); // keep the largest one for reference
navigation_process_max = MAX(OS::get_singleton()->get_ticks_usec() - navigation_begin, navigation_process_max);
message_queue->flush();
#endif // !defined(NAVIGATION_2D_DISABLED) || !defined(NAVIGATION_3D_DISABLED)
#ifndef PHYSICS_3D_DISABLED
PhysicsServer3D::get_singleton()->end_sync();
@@ -4850,9 +4894,13 @@ void Main::cleanup(bool p_force) {
finalize_theme_db();
// Before deinitializing server extensions, finalize servers which may be loaded as extensions.
// Before deinitializing server extensions, finalize servers which may be loaded as extensions.
#ifndef NAVIGATION_2D_DISABLED
NavigationServer2DManager::finalize_server();
#endif // NAVIGATION_2D_DISABLED
#ifndef NAVIGATION_3D_DISABLED
NavigationServer3DManager::finalize_server();
#endif // NAVIGATION_3D_DISABLED
finalize_physics();
GDExtensionManager::get_singleton()->deinitialize_extensions(GDExtension::INITIALIZATION_LEVEL_SERVERS);