mirror of
https://github.com/godotengine/godot.git
synced 2025-12-07 22:00:10 +00:00
Make NavigationServer backend engine selectable
Adds engine backend selection for NavigationServers, aka allows to swap navigation module for other backend implementations.
This commit is contained in:
parent
07f4c06601
commit
419fc6e22d
13 changed files with 439 additions and 54 deletions
|
|
@ -746,6 +746,13 @@ Error Main::test_setup() {
|
|||
physics_server_2d_manager = memnew(PhysicsServer2DManager);
|
||||
#endif // PHYSICS_2D_DISABLED
|
||||
|
||||
#ifndef NAVIGATION_2D_DISABLED
|
||||
NavigationServer2DManager::initialize_server_manager();
|
||||
#endif // NAVIGATION_2D_DISABLED
|
||||
#ifndef NAVIGATION_3D_DISABLED
|
||||
NavigationServer3DManager::initialize_server_manager();
|
||||
#endif // NAVIGATION_3D_DISABLED
|
||||
|
||||
// From `Main::setup2()`.
|
||||
register_early_core_singletons();
|
||||
initialize_modules(MODULE_INITIALIZATION_LEVEL_CORE);
|
||||
|
|
@ -863,9 +870,11 @@ void Main::test_cleanup() {
|
|||
|
||||
#ifndef NAVIGATION_2D_DISABLED
|
||||
NavigationServer2DManager::finalize_server();
|
||||
NavigationServer2DManager::finalize_server_manager();
|
||||
#endif // NAVIGATION_2D_DISABLED
|
||||
#ifndef NAVIGATION_3D_DISABLED
|
||||
NavigationServer3DManager::finalize_server();
|
||||
NavigationServer3DManager::finalize_server_manager();
|
||||
#endif // NAVIGATION_3D_DISABLED
|
||||
|
||||
GDExtensionManager::get_singleton()->deinitialize_extensions(GDExtension::INITIALIZATION_LEVEL_SERVERS);
|
||||
|
|
@ -3018,6 +3027,13 @@ Error Main::setup2(bool p_show_boot_logo) {
|
|||
physics_server_2d_manager = memnew(PhysicsServer2DManager);
|
||||
#endif // PHYSICS_2D_DISABLED
|
||||
|
||||
#ifndef NAVIGATION_2D_DISABLED
|
||||
NavigationServer2DManager::initialize_server_manager();
|
||||
#endif // NAVIGATION_2D_DISABLED
|
||||
#ifndef NAVIGATION_3D_DISABLED
|
||||
NavigationServer3DManager::initialize_server_manager();
|
||||
#endif // NAVIGATION_3D_DISABLED
|
||||
|
||||
register_server_types();
|
||||
{
|
||||
OS::get_singleton()->benchmark_begin_measure("Servers", "Modules and Extensions");
|
||||
|
|
@ -4979,9 +4995,11 @@ void Main::cleanup(bool p_force) {
|
|||
// Before deinitializing server extensions, finalize servers which may be loaded as extensions.
|
||||
#ifndef NAVIGATION_2D_DISABLED
|
||||
NavigationServer2DManager::finalize_server();
|
||||
NavigationServer2DManager::finalize_server_manager();
|
||||
#endif // NAVIGATION_2D_DISABLED
|
||||
#ifndef NAVIGATION_3D_DISABLED
|
||||
NavigationServer3DManager::finalize_server();
|
||||
NavigationServer3DManager::finalize_server_manager();
|
||||
#endif // NAVIGATION_3D_DISABLED
|
||||
finalize_physics();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue