diff --git a/SConstruct b/SConstruct index 87d08bfd0b..a869f59b38 100644 --- a/SConstruct +++ b/SConstruct @@ -977,8 +977,8 @@ if env.editor_build: if env["disable_3d"]: env.Append(CPPDEFINES=["_3D_DISABLED"]) - env["disable_physics_3d"] = True env["disable_navigation_3d"] = True + env["disable_physics_3d"] = True env["disable_xr"] = True if env["disable_advanced_gui"]: env.Append(CPPDEFINES=["ADVANCED_GUI_DISABLED"]) diff --git a/main/main.cpp b/main/main.cpp index c74f508054..6121d893e3 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -82,23 +82,26 @@ #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 + +#ifndef PHYSICS_3D_DISABLED +#include "servers/physics_server_3d.h" +#include "servers/physics_server_3d_dummy.h" +#endif // PHYSICS_3D_DISABLED + +#ifndef XR_DISABLED #include "servers/xr_server.h" -#endif // _3D_DISABLED +#endif // XR_DISABLED #ifdef TESTS_ENABLED #include "tests/test_main.h" diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp index 378c0bc081..196dfd88f4 100644 --- a/platform/android/java_godot_lib_jni.cpp +++ b/platform/android/java_godot_lib_jni.cpp @@ -51,9 +51,9 @@ #include "main/main.h" #include "servers/rendering_server.h" -#ifndef _3D_DISABLED +#ifndef XR_DISABLED #include "servers/xr_server.h" -#endif // _3D_DISABLED +#endif // XR_DISABLED #ifdef TOOLS_ENABLED #include "editor/editor_settings.h" diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp index 6f7c1e68d8..6baaac1d3f 100644 --- a/scene/main/canvas_item.cpp +++ b/scene/main/canvas_item.cpp @@ -1687,6 +1687,7 @@ void CanvasItem::set_clip_children_mode(ClipChildrenMode p_clip_mode) { RS::get_singleton()->canvas_item_set_canvas_group_mode(get_canvas_item(), RS::CanvasGroupMode(clip_children_mode)); } + CanvasItem::ClipChildrenMode CanvasItem::get_clip_children_mode() const { ERR_READ_THREAD_GUARD_V(CLIP_CHILDREN_DISABLED); return clip_children_mode; diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 0e2ab59b7a..2604a3f53d 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -35,14 +35,15 @@ #include "core/io/resource_loader.h" #include "core/templates/local_vector.h" #include "scene/2d/node_2d.h" -#ifndef _3D_DISABLED -#include "scene/3d/node_3d.h" -#endif // _3D_DISABLED #include "scene/gui/control.h" #include "scene/main/instance_placeholder.h" #include "scene/main/missing_node.h" #include "scene/property_utils.h" +#ifndef _3D_DISABLED +#include "scene/3d/node_3d.h" +#endif // _3D_DISABLED + #define PACKED_SCENE_VERSION 3 #ifdef TOOLS_ENABLED diff --git a/scene/resources/world_2d.cpp b/scene/resources/world_2d.cpp index 9fb3418760..1f2586646b 100644 --- a/scene/resources/world_2d.cpp +++ b/scene/resources/world_2d.cpp @@ -42,20 +42,6 @@ RID World2D::get_canvas() const { return canvas; } -#ifndef PHYSICS_2D_DISABLED -RID World2D::get_space() const { - if (space.is_null()) { - space = PhysicsServer2D::get_singleton()->space_create(); - PhysicsServer2D::get_singleton()->space_set_active(space, true); - PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_GRAVITY, GLOBAL_GET("physics/2d/default_gravity")); - PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_GRAVITY_VECTOR, GLOBAL_GET("physics/2d/default_gravity_vector")); - PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_LINEAR_DAMP, GLOBAL_GET("physics/2d/default_linear_damp")); - PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_ANGULAR_DAMP, GLOBAL_GET("physics/2d/default_angular_damp")); - } - return space; -} -#endif // PHYSICS_2D_DISABLED - #ifndef NAVIGATION_2D_DISABLED RID World2D::get_navigation_map() const { if (navigation_map.is_null()) { @@ -71,6 +57,18 @@ RID World2D::get_navigation_map() const { #endif // NAVIGATION_2D_DISABLED #ifndef PHYSICS_2D_DISABLED +RID World2D::get_space() const { + if (space.is_null()) { + space = PhysicsServer2D::get_singleton()->space_create(); + PhysicsServer2D::get_singleton()->space_set_active(space, true); + PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_GRAVITY, GLOBAL_GET("physics/2d/default_gravity")); + PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_GRAVITY_VECTOR, GLOBAL_GET("physics/2d/default_gravity_vector")); + PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_LINEAR_DAMP, GLOBAL_GET("physics/2d/default_linear_damp")); + PhysicsServer2D::get_singleton()->area_set_param(space, PhysicsServer2D::AREA_PARAM_ANGULAR_DAMP, GLOBAL_GET("physics/2d/default_angular_damp")); + } + return space; +} + PhysicsDirectSpaceState2D *World2D::get_direct_space_state() { return PhysicsServer2D::get_singleton()->space_get_direct_state(get_space()); } @@ -78,19 +76,16 @@ PhysicsDirectSpaceState2D *World2D::get_direct_space_state() { void World2D::_bind_methods() { ClassDB::bind_method(D_METHOD("get_canvas"), &World2D::get_canvas); + ADD_PROPERTY(PropertyInfo(Variant::RID, "canvas", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_canvas"); + #ifndef NAVIGATION_2D_DISABLED ClassDB::bind_method(D_METHOD("get_navigation_map"), &World2D::get_navigation_map); + ADD_PROPERTY(PropertyInfo(Variant::RID, "navigation_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_navigation_map"); #endif // NAVIGATION_2D_DISABLED + #ifndef PHYSICS_2D_DISABLED ClassDB::bind_method(D_METHOD("get_space"), &World2D::get_space); ClassDB::bind_method(D_METHOD("get_direct_space_state"), &World2D::get_direct_space_state); -#endif // PHYSICS_2D_DISABLED - - ADD_PROPERTY(PropertyInfo(Variant::RID, "canvas", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_canvas"); -#ifndef NAVIGATION_2D_DISABLED - ADD_PROPERTY(PropertyInfo(Variant::RID, "navigation_map", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_navigation_map"); -#endif // NAVIGATION_2D_DISABLED -#ifndef PHYSICS_2D_DISABLED ADD_PROPERTY(PropertyInfo(Variant::RID, "space", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "", "get_space"); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "direct_space_state", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsDirectSpaceState2D", PROPERTY_USAGE_NONE), "", "get_direct_space_state"); #endif // PHYSICS_2D_DISABLED @@ -110,22 +105,19 @@ World2D::World2D() { World2D::~World2D() { ERR_FAIL_NULL(RenderingServer::get_singleton()); -#ifndef PHYSICS_2D_DISABLED - ERR_FAIL_NULL(PhysicsServer2D::get_singleton()); -#endif // PHYSICS_2D_DISABLED + RenderingServer::get_singleton()->free(canvas); + #ifndef NAVIGATION_2D_DISABLED ERR_FAIL_NULL(NavigationServer2D::get_singleton()); -#endif // NAVIGATION_2D_DISABLED - - RenderingServer::get_singleton()->free(canvas); -#ifndef PHYSICS_2D_DISABLED - if (space.is_valid()) { - PhysicsServer2D::get_singleton()->free(space); - } -#endif // PHYSICS_2D_DISABLED -#ifndef NAVIGATION_2D_DISABLED if (navigation_map.is_valid()) { NavigationServer2D::get_singleton()->free(navigation_map); } #endif // NAVIGATION_2D_DISABLED + +#ifndef PHYSICS_2D_DISABLED + ERR_FAIL_NULL(PhysicsServer2D::get_singleton()); + if (space.is_valid()) { + PhysicsServer2D::get_singleton()->free(space); + } +#endif // PHYSICS_2D_DISABLED } diff --git a/scene/resources/world_2d.h b/scene/resources/world_2d.h index 007e1ffaff..fd93c884a2 100644 --- a/scene/resources/world_2d.h +++ b/scene/resources/world_2d.h @@ -44,10 +44,12 @@ class World2D : public Resource { GDCLASS(World2D, Resource); RID canvas; - mutable RID space; #ifndef NAVIGATION_2D_DISABLED mutable RID navigation_map; #endif // NAVIGATION_2D_DISABLED +#ifndef PHYSICS_2D_DISABLED + mutable RID space; +#endif // PHYSICS_2D_DISABLED HashSet viewports; diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index b99dc72ba6..62ae5418d1 100644 --- a/servers/register_server_types.cpp +++ b/servers/register_server_types.cpp @@ -258,6 +258,12 @@ void register_server_types() { ServersDebugger::initialize(); +#ifndef NAVIGATION_2D_DISABLED + GDREGISTER_ABSTRACT_CLASS(NavigationServer2D); + GDREGISTER_CLASS(NavigationPathQueryParameters2D); + GDREGISTER_CLASS(NavigationPathQueryResult2D); +#endif // NAVIGATION_2D_DISABLED + #ifndef PHYSICS_2D_DISABLED // Physics 2D GDREGISTER_CLASS(PhysicsServer2DManager); @@ -286,11 +292,11 @@ void register_server_types() { PhysicsServer2DManager::get_singleton()->register_server("Dummy", callable_mp_static(_create_dummy_physics_server_2d)); #endif // PHYSICS_2D_DISABLED -#ifndef NAVIGATION_2D_DISABLED - GDREGISTER_ABSTRACT_CLASS(NavigationServer2D); - GDREGISTER_CLASS(NavigationPathQueryParameters2D); - GDREGISTER_CLASS(NavigationPathQueryResult2D); -#endif // NAVIGATION_2D_DISABLED +#ifndef NAVIGATION_3D_DISABLED + GDREGISTER_ABSTRACT_CLASS(NavigationServer3D); + GDREGISTER_CLASS(NavigationPathQueryParameters3D); + GDREGISTER_CLASS(NavigationPathQueryResult3D); +#endif // NAVIGATION_3D_DISABLED #ifndef PHYSICS_3D_DISABLED // Physics 3D @@ -336,12 +342,6 @@ void register_server_types() { GDREGISTER_ABSTRACT_CLASS(XRTracker); #endif // XR_DISABLED -#ifndef NAVIGATION_3D_DISABLED - GDREGISTER_ABSTRACT_CLASS(NavigationServer3D); - GDREGISTER_CLASS(NavigationPathQueryParameters3D); - GDREGISTER_CLASS(NavigationPathQueryResult3D); -#endif // NAVIGATION_3D_DISABLED - writer_mjpeg = memnew(MovieWriterMJPEG); MovieWriter::add_writer(writer_mjpeg); @@ -369,14 +369,13 @@ void register_server_singletons() { Engine::get_singleton()->add_singleton(Engine::Singleton("CameraServer", CameraServer::get_singleton(), "CameraServer")); Engine::get_singleton()->add_singleton(Engine::Singleton("DisplayServer", DisplayServer::get_singleton(), "DisplayServer")); Engine::get_singleton()->add_singleton(Engine::Singleton("NativeMenu", NativeMenu::get_singleton(), "NativeMenu")); + Engine::get_singleton()->add_singleton(Engine::Singleton("RenderingServer", RenderingServer::get_singleton(), "RenderingServer")); #ifndef NAVIGATION_2D_DISABLED Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationServer2D", NavigationServer2D::get_singleton(), "NavigationServer2D")); #endif // NAVIGATION_2D_DISABLED #ifndef NAVIGATION_3D_DISABLED Engine::get_singleton()->add_singleton(Engine::Singleton("NavigationServer3D", NavigationServer3D::get_singleton(), "NavigationServer3D")); #endif // NAVIGATION_3D_DISABLED - Engine::get_singleton()->add_singleton(Engine::Singleton("RenderingServer", RenderingServer::get_singleton(), "RenderingServer")); - #ifndef PHYSICS_2D_DISABLED Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer2D", PhysicsServer2D::get_singleton(), "PhysicsServer2D")); #endif // PHYSICS_2D_DISABLED diff --git a/servers/rendering/renderer_compositor.cpp b/servers/rendering/renderer_compositor.cpp index b6c9c04ede..b992200977 100644 --- a/servers/rendering/renderer_compositor.cpp +++ b/servers/rendering/renderer_compositor.cpp @@ -31,7 +31,10 @@ #include "renderer_compositor.h" #include "core/config/project_settings.h" + +#ifndef XR_DISABLED #include "servers/xr_server.h" +#endif // XR_DISABLED RendererCompositor *RendererCompositor::singleton = nullptr; diff --git a/servers/rendering/renderer_rd/effects/vrs.cpp b/servers/rendering/renderer_rd/effects/vrs.cpp index 4730b5db04..142eebabea 100644 --- a/servers/rendering/renderer_rd/effects/vrs.cpp +++ b/servers/rendering/renderer_rd/effects/vrs.cpp @@ -33,9 +33,9 @@ #include "../storage_rd/texture_storage.h" #include "../uniform_set_cache_rd.h" -#ifndef _3D_DISABLED +#ifndef XR_DISABLED #include "servers/xr_server.h" -#endif // _3D_DISABLED +#endif // XR_DISABLED using namespace RendererRD;