1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Organize ifdefs for disabling navigation, physics, and XR

This commit is contained in:
Aaron Franke
2025-04-02 03:15:02 -07:00
parent 1f56d96cf2
commit 2800948d61
10 changed files with 62 additions and 61 deletions

View File

@@ -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"])

View File

@@ -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"

View File

@@ -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"

View File

@@ -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;

View File

@@ -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

View File

@@ -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
}

View File

@@ -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<Viewport *> viewports;

View File

@@ -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

View File

@@ -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;

View File

@@ -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;