2
0
Эх сурвалжийг харах

Merge pull request #103267 from YeldhamDev/reality_got_too_extended

Allow to compile the engine without XR support
Thaddeus Crews 4 сар өмнө
parent
commit
67d4a245d8

+ 4 - 1
SConstruct

@@ -186,7 +186,6 @@ opts.Add(BoolVariable("vulkan", "Enable the vulkan rendering driver", True))
 opts.Add(BoolVariable("opengl3", "Enable the OpenGL/GLES3 rendering driver", True))
 opts.Add(BoolVariable("opengl3", "Enable the OpenGL/GLES3 rendering driver", True))
 opts.Add(BoolVariable("d3d12", "Enable the Direct3D 12 rendering driver on supported platforms", False))
 opts.Add(BoolVariable("d3d12", "Enable the Direct3D 12 rendering driver on supported platforms", False))
 opts.Add(BoolVariable("metal", "Enable the Metal rendering driver on supported platforms (Apple arm64 only)", False))
 opts.Add(BoolVariable("metal", "Enable the Metal rendering driver on supported platforms (Apple arm64 only)", False))
-opts.Add(BoolVariable("openxr", "Enable the OpenXR driver", True))
 opts.Add(BoolVariable("use_volk", "Use the volk library to load the Vulkan loader dynamically", True))
 opts.Add(BoolVariable("use_volk", "Use the volk library to load the Vulkan loader dynamically", True))
 opts.Add(BoolVariable("disable_exceptions", "Force disabling exception handling code", True))
 opts.Add(BoolVariable("disable_exceptions", "Force disabling exception handling code", True))
 opts.Add("custom_modules", "A list of comma-separated directory paths containing custom modules to build.", "")
 opts.Add("custom_modules", "A list of comma-separated directory paths containing custom modules to build.", "")
@@ -220,6 +219,7 @@ opts.Add("vsproj_name", "Name of the Visual Studio solution", "godot")
 opts.Add("import_env_vars", "A comma-separated list of environment variables to copy from the outer environment.", "")
 opts.Add("import_env_vars", "A comma-separated list of environment variables to copy from the outer environment.", "")
 opts.Add(BoolVariable("disable_3d", "Disable 3D nodes for a smaller executable", False))
 opts.Add(BoolVariable("disable_3d", "Disable 3D nodes for a smaller executable", False))
 opts.Add(BoolVariable("disable_advanced_gui", "Disable advanced GUI nodes and behaviors", False))
 opts.Add(BoolVariable("disable_advanced_gui", "Disable advanced GUI nodes and behaviors", False))
+opts.Add(BoolVariable("disable_xr", "Disable XR nodes and server", False))
 opts.Add("build_profile", "Path to a file containing a feature build profile", "")
 opts.Add("build_profile", "Path to a file containing a feature build profile", "")
 opts.Add(BoolVariable("modules_enabled_by_default", "If no, disable all modules except ones explicitly enabled", True))
 opts.Add(BoolVariable("modules_enabled_by_default", "If no, disable all modules except ones explicitly enabled", True))
 opts.Add(BoolVariable("no_editor_splash", "Don't use the custom splash screen for the editor", True))
 opts.Add(BoolVariable("no_editor_splash", "Don't use the custom splash screen for the editor", True))
@@ -995,6 +995,7 @@ if env["disable_3d"]:
         Exit(255)
         Exit(255)
     else:
     else:
         env.Append(CPPDEFINES=["_3D_DISABLED"])
         env.Append(CPPDEFINES=["_3D_DISABLED"])
+        env["disable_xr"] = True
 if env["disable_advanced_gui"]:
 if env["disable_advanced_gui"]:
     if env.editor_build:
     if env.editor_build:
         print_error(
         print_error(
@@ -1003,6 +1004,8 @@ if env["disable_advanced_gui"]:
         Exit(255)
         Exit(255)
     else:
     else:
         env.Append(CPPDEFINES=["ADVANCED_GUI_DISABLED"])
         env.Append(CPPDEFINES=["ADVANCED_GUI_DISABLED"])
+if env["disable_xr"]:
+    env.Append(CPPDEFINES=["XR_DISABLED"])
 if env["minizip"]:
 if env["minizip"]:
     env.Append(CPPDEFINES=["MINIZIP_ENABLED"])
     env.Append(CPPDEFINES=["MINIZIP_ENABLED"])
 if env["brotli"]:
 if env["brotli"]:

+ 2 - 2
editor/editor_build_profile.cpp

@@ -46,7 +46,7 @@ const char *EditorBuildProfile::build_option_identifiers[BUILD_OPTION_MAX] = {
 	"disable_2d_physics",
 	"disable_2d_physics",
 	"disable_3d_physics",
 	"disable_3d_physics",
 	"disable_navigation",
 	"disable_navigation",
-	"openxr",
+	"disable_xr",
 	"rendering_device", // FIXME: there's no scons option to disable rendering device
 	"rendering_device", // FIXME: there's no scons option to disable rendering device
 	"opengl3",
 	"opengl3",
 	"vulkan",
 	"vulkan",
@@ -82,7 +82,7 @@ const bool EditorBuildProfile::build_option_disable_values[BUILD_OPTION_MAX] = {
 	true, // PHYSICS_2D
 	true, // PHYSICS_2D
 	true, // PHYSICS_3D
 	true, // PHYSICS_3D
 	true, // NAVIGATION
 	true, // NAVIGATION
-	false, // XR
+	true, // XR
 	false, // RENDERING_DEVICE
 	false, // RENDERING_DEVICE
 	false, // OPENGL
 	false, // OPENGL
 	false, // VULKAN
 	false, // VULKAN

+ 2 - 2
editor/gui/editor_run_bar.cpp

@@ -587,7 +587,7 @@ EditorRunBar::EditorRunBar() {
 	run_native->connect("native_run", callable_mp(this, &EditorRunBar::_run_native));
 	run_native->connect("native_run", callable_mp(this, &EditorRunBar::_run_native));
 
 
 	bool add_play_xr_mode_options = false;
 	bool add_play_xr_mode_options = false;
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	if (OS::get_singleton()->has_feature("xr_editor") &&
 	if (OS::get_singleton()->has_feature("xr_editor") &&
 			(XRServer::get_xr_mode() == XRServer::XRMODE_ON ||
 			(XRServer::get_xr_mode() == XRServer::XRMODE_ON ||
 					(XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT && GLOBAL_GET("xr/openxr/enabled")))) {
 					(XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT && GLOBAL_GET("xr/openxr/enabled")))) {
@@ -596,7 +596,7 @@ EditorRunBar::EditorRunBar() {
 		// either regular mode or XR mode.
 		// either regular mode or XR mode.
 		add_play_xr_mode_options = true;
 		add_play_xr_mode_options = true;
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 	if (add_play_xr_mode_options) {
 	if (add_play_xr_mode_options) {
 		MenuButton *menu_button = memnew(MenuButton);
 		MenuButton *menu_button = memnew(MenuButton);

+ 10 - 10
main/main.cpp

@@ -713,9 +713,9 @@ Error Main::test_setup() {
 
 
 	/** INITIALIZE SERVERS **/
 	/** INITIALIZE SERVERS **/
 	register_server_types();
 	register_server_types();
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	XRServer::set_xr_mode(XRServer::XRMODE_OFF); // Skip in tests.
 	XRServer::set_xr_mode(XRServer::XRMODE_OFF); // Skip in tests.
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 	initialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
 	initialize_modules(MODULE_INITIALIZATION_LEVEL_SERVERS);
 	GDExtensionManager::get_singleton()->initialize_extensions(GDExtension::INITIALIZATION_LEVEL_SERVERS);
 	GDExtensionManager::get_singleton()->initialize_extensions(GDExtension::INITIALIZATION_LEVEL_SERVERS);
 
 
@@ -1734,7 +1734,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 			OS::get_singleton()->disable_crash_handler();
 			OS::get_singleton()->disable_crash_handler();
 		} else if (arg == "--skip-breakpoints") {
 		} else if (arg == "--skip-breakpoints") {
 			skip_breakpoints = true;
 			skip_breakpoints = true;
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 		} else if (arg == "--xr-mode") {
 		} else if (arg == "--xr-mode") {
 			if (N) {
 			if (N) {
 				String xr_mode = N->get().to_lower();
 				String xr_mode = N->get().to_lower();
@@ -1753,7 +1753,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph
 				OS::get_singleton()->print("Missing --xr-mode argument, aborting.\n");
 				OS::get_singleton()->print("Missing --xr-mode argument, aborting.\n");
 				goto error;
 				goto error;
 			}
 			}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 		} else if (arg == "--benchmark") {
 		} else if (arg == "--benchmark") {
 			OS::get_singleton()->set_use_benchmark(true);
 			OS::get_singleton()->set_use_benchmark(true);
 		} else if (arg == "--benchmark-file") {
 		} else if (arg == "--benchmark-file") {
@@ -3196,7 +3196,7 @@ Error Main::setup2(bool p_show_boot_logo) {
 		OS::get_singleton()->benchmark_end_measure("Servers", "Audio");
 		OS::get_singleton()->benchmark_end_measure("Servers", "Audio");
 	}
 	}
 
 
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	/* Initialize XR Server */
 	/* Initialize XR Server */
 
 
 	{
 	{
@@ -3206,7 +3206,7 @@ Error Main::setup2(bool p_show_boot_logo) {
 
 
 		OS::get_singleton()->benchmark_end_measure("Servers", "XR");
 		OS::get_singleton()->benchmark_end_measure("Servers", "XR");
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 	OS::get_singleton()->benchmark_end_measure("Startup", "Servers");
 	OS::get_singleton()->benchmark_end_measure("Startup", "Servers");
 
 
@@ -4429,9 +4429,9 @@ bool Main::iteration() {
 	bool exit = false;
 	bool exit = false;
 
 
 	// process all our active interfaces
 	// process all our active interfaces
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	XRServer::get_singleton()->_process();
 	XRServer::get_singleton()->_process();
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 	NavigationServer2D::get_singleton()->sync();
 	NavigationServer2D::get_singleton()->sync();
 	NavigationServer3D::get_singleton()->sync();
 	NavigationServer3D::get_singleton()->sync();
@@ -4685,13 +4685,13 @@ void Main::cleanup(bool p_force) {
 	//clear global shader variables before scene and other graphics stuff are deinitialized.
 	//clear global shader variables before scene and other graphics stuff are deinitialized.
 	rendering_server->global_shader_parameters_clear();
 	rendering_server->global_shader_parameters_clear();
 
 
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	if (xr_server) {
 	if (xr_server) {
 		// Now that we're unregistering properly in plugins we need to keep access to xr_server for a little longer
 		// Now that we're unregistering properly in plugins we need to keep access to xr_server for a little longer
 		// We do however unset our primary interface
 		// We do however unset our primary interface
 		xr_server->set_primary_interface(Ref<XRInterface>());
 		xr_server->set_primary_interface(Ref<XRInterface>());
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
 	GDExtensionManager::get_singleton()->deinitialize_extensions(GDExtension::INITIALIZATION_LEVEL_EDITOR);
 	GDExtensionManager::get_singleton()->deinitialize_extensions(GDExtension::INITIALIZATION_LEVEL_EDITOR);

+ 1 - 1
modules/mobile_vr/config.py

@@ -1,5 +1,5 @@
 def can_build(env, platform):
 def can_build(env, platform):
-    return not env["disable_3d"]
+    return not env["disable_xr"]
 
 
 
 
 def configure(env):
 def configure(env):

+ 2 - 2
modules/openxr/config.py

@@ -1,8 +1,8 @@
 def can_build(env, platform):
 def can_build(env, platform):
     if platform in ("linuxbsd", "windows", "android", "macos"):
     if platform in ("linuxbsd", "windows", "android", "macos"):
-        return env["openxr"] and not env["disable_3d"]
+        return not env["disable_xr"]
     else:
     else:
-        # not supported on these platforms
+        # Not supported on these platforms.
         return False
         return False
 
 
 
 

+ 1 - 1
modules/openxr/scene/openxr_composition_layer.cpp

@@ -35,7 +35,7 @@
 #include "../openxr_interface.h"
 #include "../openxr_interface.h"
 
 
 #include "scene/3d/mesh_instance_3d.h"
 #include "scene/3d/mesh_instance_3d.h"
-#include "scene/3d/xr_nodes.h"
+#include "scene/3d/xr/xr_nodes.h"
 #include "scene/main/viewport.h"
 #include "scene/main/viewport.h"
 
 
 #include "platform/android/api/java_class_wrapper.h"
 #include "platform/android/api/java_class_wrapper.h"

+ 1 - 1
modules/openxr/scene/openxr_visibility_mask.cpp

@@ -32,7 +32,7 @@
 
 
 #include "../extensions/openxr_visibility_mask_extension.h"
 #include "../extensions/openxr_visibility_mask_extension.h"
 #include "../openxr_interface.h"
 #include "../openxr_interface.h"
-#include "scene/3d/xr_nodes.h"
+#include "scene/3d/xr/xr_nodes.h"
 
 
 void OpenXRVisibilityMask::_bind_methods() {
 void OpenXRVisibilityMask::_bind_methods() {
 }
 }

+ 1 - 1
modules/webxr/config.py

@@ -1,5 +1,5 @@
 def can_build(env, platform):
 def can_build(env, platform):
-    return env["opengl3"] and not env["disable_3d"]
+    return env["opengl3"] and not env["disable_xr"]
 
 
 
 
 def configure(env):
 def configure(env):

+ 2 - 2
platform/android/java_godot_lib_jni.cpp

@@ -273,7 +273,7 @@ JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env,
 
 
 	if (step.get() == STEP_SHOW_LOGO) {
 	if (step.get() == STEP_SHOW_LOGO) {
 		bool xr_enabled = false;
 		bool xr_enabled = false;
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 		// Unlike PCVR, there's no additional 2D screen onto which to render the boot logo,
 		// Unlike PCVR, there's no additional 2D screen onto which to render the boot logo,
 		// so we skip this step if xr is enabled.
 		// so we skip this step if xr is enabled.
 		if (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT) {
 		if (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT) {
@@ -281,7 +281,7 @@ JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env,
 		} else {
 		} else {
 			xr_enabled = XRServer::get_xr_mode() == XRServer::XRMODE_ON;
 			xr_enabled = XRServer::get_xr_mode() == XRServer::XRMODE_ON;
 		}
 		}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 		if (!xr_enabled) {
 		if (!xr_enabled) {
 			Main::setup_boot_logo();
 			Main::setup_boot_logo();
 		}
 		}

+ 2 - 0
scene/3d/SCsub

@@ -7,3 +7,5 @@ env.add_source_files(env.scene_sources, "*.cpp")
 
 
 # Chain load SCsubs
 # Chain load SCsubs
 SConscript("physics/SCsub")
 SConscript("physics/SCsub")
+if not env["disable_xr"]:
+    SConscript("xr/SCsub")

+ 6 - 0
scene/3d/xr/SCsub

@@ -0,0 +1,6 @@
+#!/usr/bin/env python
+from misc.utility.scons_hints import *
+
+Import("env")
+
+env.add_source_files(env.scene_sources, "*.cpp")

+ 0 - 0
scene/3d/xr_body_modifier_3d.cpp → scene/3d/xr/xr_body_modifier_3d.cpp


+ 0 - 0
scene/3d/xr_body_modifier_3d.h → scene/3d/xr/xr_body_modifier_3d.h


+ 0 - 0
scene/3d/xr_face_modifier_3d.cpp → scene/3d/xr/xr_face_modifier_3d.cpp


+ 1 - 1
scene/3d/xr_face_modifier_3d.h → scene/3d/xr/xr_face_modifier_3d.h

@@ -31,7 +31,7 @@
 #ifndef XR_FACE_MODIFIER_3D_H
 #ifndef XR_FACE_MODIFIER_3D_H
 #define XR_FACE_MODIFIER_3D_H
 #define XR_FACE_MODIFIER_3D_H
 
 
-#include "mesh_instance_3d.h"
+#include "scene/3d/mesh_instance_3d.h"
 #include "scene/3d/node_3d.h"
 #include "scene/3d/node_3d.h"
 
 
 /**
 /**

+ 0 - 0
scene/3d/xr_hand_modifier_3d.cpp → scene/3d/xr/xr_hand_modifier_3d.cpp


+ 0 - 0
scene/3d/xr_hand_modifier_3d.h → scene/3d/xr/xr_hand_modifier_3d.h


+ 0 - 0
scene/3d/xr_nodes.cpp → scene/3d/xr/xr_nodes.cpp


+ 0 - 0
scene/3d/xr_nodes.h → scene/3d/xr/xr_nodes.h


+ 4 - 4
scene/main/viewport.cpp

@@ -697,7 +697,7 @@ void Viewport::_process_picking() {
 		physics_picking_events.clear();
 		physics_picking_events.clear();
 		return;
 		return;
 	}
 	}
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	if (use_xr) {
 	if (use_xr) {
 		if (XRServer::get_singleton() != nullptr) {
 		if (XRServer::get_singleton() != nullptr) {
 			Ref<XRInterface> xr_interface = XRServer::get_singleton()->get_primary_interface();
 			Ref<XRInterface> xr_interface = XRServer::get_singleton()->get_primary_interface();
@@ -708,7 +708,7 @@ void Viewport::_process_picking() {
 			}
 			}
 		}
 		}
 	}
 	}
-#endif
+#endif // XR_DISABLED
 
 
 	_drop_physics_mouseover(true);
 	_drop_physics_mouseover(true);
 
 
@@ -1054,7 +1054,7 @@ bool Viewport::_set_size(const Size2i &p_size, const Size2 &p_size_2d_override,
 }
 }
 
 
 Size2i Viewport::_get_size() const {
 Size2i Viewport::_get_size() const {
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	if (use_xr) {
 	if (use_xr) {
 		if (XRServer::get_singleton() != nullptr) {
 		if (XRServer::get_singleton() != nullptr) {
 			Ref<XRInterface> xr_interface = XRServer::get_singleton()->get_primary_interface();
 			Ref<XRInterface> xr_interface = XRServer::get_singleton()->get_primary_interface();
@@ -1065,7 +1065,7 @@ Size2i Viewport::_get_size() const {
 		}
 		}
 		return Size2i();
 		return Size2i();
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 	return size;
 	return size;
 }
 }

+ 6 - 4
scene/register_scene_types.cpp

@@ -293,10 +293,10 @@
 #include "scene/3d/visible_on_screen_notifier_3d.h"
 #include "scene/3d/visible_on_screen_notifier_3d.h"
 #include "scene/3d/voxel_gi.h"
 #include "scene/3d/voxel_gi.h"
 #include "scene/3d/world_environment.h"
 #include "scene/3d/world_environment.h"
-#include "scene/3d/xr_body_modifier_3d.h"
-#include "scene/3d/xr_face_modifier_3d.h"
-#include "scene/3d/xr_hand_modifier_3d.h"
-#include "scene/3d/xr_nodes.h"
+#include "scene/3d/xr/xr_body_modifier_3d.h"
+#include "scene/3d/xr/xr_face_modifier_3d.h"
+#include "scene/3d/xr/xr_hand_modifier_3d.h"
+#include "scene/3d/xr/xr_nodes.h"
 #include "scene/animation/root_motion_view.h"
 #include "scene/animation/root_motion_view.h"
 #include "scene/resources/3d/box_shape_3d.h"
 #include "scene/resources/3d/box_shape_3d.h"
 #include "scene/resources/3d/capsule_shape_3d.h"
 #include "scene/resources/3d/capsule_shape_3d.h"
@@ -555,6 +555,7 @@ void register_scene_types() {
 	GDREGISTER_VIRTUAL_CLASS(GeometryInstance3D);
 	GDREGISTER_VIRTUAL_CLASS(GeometryInstance3D);
 	GDREGISTER_CLASS(Camera3D);
 	GDREGISTER_CLASS(Camera3D);
 	GDREGISTER_CLASS(AudioListener3D);
 	GDREGISTER_CLASS(AudioListener3D);
+#ifndef XR_DISABLED
 	GDREGISTER_CLASS(XRCamera3D);
 	GDREGISTER_CLASS(XRCamera3D);
 	GDREGISTER_CLASS(XRNode3D);
 	GDREGISTER_CLASS(XRNode3D);
 	GDREGISTER_CLASS(XRController3D);
 	GDREGISTER_CLASS(XRController3D);
@@ -563,6 +564,7 @@ void register_scene_types() {
 	GDREGISTER_CLASS(XRBodyModifier3D);
 	GDREGISTER_CLASS(XRBodyModifier3D);
 	GDREGISTER_CLASS(XRHandModifier3D);
 	GDREGISTER_CLASS(XRHandModifier3D);
 	GDREGISTER_CLASS(XRFaceModifier3D);
 	GDREGISTER_CLASS(XRFaceModifier3D);
+#endif // XR_DISABLED
 	GDREGISTER_CLASS(MeshInstance3D);
 	GDREGISTER_CLASS(MeshInstance3D);
 	GDREGISTER_CLASS(OccluderInstance3D);
 	GDREGISTER_CLASS(OccluderInstance3D);
 	GDREGISTER_ABSTRACT_CLASS(Occluder3D);
 	GDREGISTER_ABSTRACT_CLASS(Occluder3D);

+ 1 - 0
scu_builders.py

@@ -343,6 +343,7 @@ def generate_scu_files(max_includes_per_scu):
     process_folder(["scene/3d"])
     process_folder(["scene/3d"])
     process_folder(["scene/3d/physics"])
     process_folder(["scene/3d/physics"])
     process_folder(["scene/3d/physics/joints"])
     process_folder(["scene/3d/physics/joints"])
+    process_folder(["scene/3d/xr"])
     process_folder(["scene/animation"])
     process_folder(["scene/animation"])
     process_folder(["scene/gui"])
     process_folder(["scene/gui"])
     process_folder(["scene/main"])
     process_folder(["scene/main"])

+ 4 - 2
servers/SCsub

@@ -29,8 +29,10 @@ SConscript("text/SCsub")
 if not env["disable_3d"]:
 if not env["disable_3d"]:
     env.add_source_files(env.servers_sources, "physics_server_3d.cpp")
     env.add_source_files(env.servers_sources, "physics_server_3d.cpp")
     env.add_source_files(env.servers_sources, "physics_server_3d_wrap_mt.cpp")
     env.add_source_files(env.servers_sources, "physics_server_3d_wrap_mt.cpp")
-    SConscript("xr/SCsub")
-    env.add_source_files(env.servers_sources, "xr_server.cpp")
+
+    if not env["disable_xr"]:
+        env.add_source_files(env.servers_sources, "xr_server.cpp")
+        SConscript("xr/SCsub")
 
 
 lib = env.add_library("servers", env.servers_sources)
 lib = env.add_library("servers", env.servers_sources)
 
 

+ 4 - 0
servers/register_server_types.cpp

@@ -307,6 +307,7 @@ void register_server_types() {
 
 
 	PhysicsServer3DManager::get_singleton()->register_server("Dummy", callable_mp_static(_create_dummy_physics_server_3d));
 	PhysicsServer3DManager::get_singleton()->register_server("Dummy", callable_mp_static(_create_dummy_physics_server_3d));
 
 
+#ifndef XR_DISABLED
 	GDREGISTER_ABSTRACT_CLASS(XRInterface);
 	GDREGISTER_ABSTRACT_CLASS(XRInterface);
 	GDREGISTER_CLASS(XRVRS);
 	GDREGISTER_CLASS(XRVRS);
 	GDREGISTER_CLASS(XRBodyTracker);
 	GDREGISTER_CLASS(XRBodyTracker);
@@ -318,6 +319,7 @@ void register_server_types() {
 	GDREGISTER_CLASS(XRPositionalTracker);
 	GDREGISTER_CLASS(XRPositionalTracker);
 	GDREGISTER_CLASS(XRServer);
 	GDREGISTER_CLASS(XRServer);
 	GDREGISTER_ABSTRACT_CLASS(XRTracker);
 	GDREGISTER_ABSTRACT_CLASS(XRTracker);
+#endif // XR_DISABLED
 #endif // _3D_DISABLED
 #endif // _3D_DISABLED
 
 
 	GDREGISTER_ABSTRACT_CLASS(NavigationServer3D);
 	GDREGISTER_ABSTRACT_CLASS(NavigationServer3D);
@@ -358,7 +360,9 @@ void register_server_singletons() {
 	Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer2D", PhysicsServer2D::get_singleton(), "PhysicsServer2D"));
 	Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer2D", PhysicsServer2D::get_singleton(), "PhysicsServer2D"));
 #ifndef _3D_DISABLED
 #ifndef _3D_DISABLED
 	Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer3D", PhysicsServer3D::get_singleton(), "PhysicsServer3D"));
 	Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer3D", PhysicsServer3D::get_singleton(), "PhysicsServer3D"));
+#ifndef XR_DISABLED
 	Engine::get_singleton()->add_singleton(Engine::Singleton("XRServer", XRServer::get_singleton(), "XRServer"));
 	Engine::get_singleton()->add_singleton(Engine::Singleton("XRServer", XRServer::get_singleton(), "XRServer"));
+#endif // XR_DISABLED
 #endif // _3D_DISABLED
 #endif // _3D_DISABLED
 
 
 	OS::get_singleton()->benchmark_end_measure("Servers", "Register Singletons");
 	OS::get_singleton()->benchmark_end_measure("Servers", "Register Singletons");

+ 2 - 2
servers/rendering/renderer_compositor.cpp

@@ -50,13 +50,13 @@ RendererCompositor::RendererCompositor() {
 	ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCompositor singleton already exists.");
 	ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCompositor singleton already exists.");
 	singleton = this;
 	singleton = this;
 
 
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	if (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT) {
 	if (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT) {
 		xr_enabled = GLOBAL_GET("xr/shaders/enabled");
 		xr_enabled = GLOBAL_GET("xr/shaders/enabled");
 	} else {
 	} else {
 		xr_enabled = XRServer::get_xr_mode() == XRServer::XRMODE_ON;
 		xr_enabled = XRServer::get_xr_mode() == XRServer::XRMODE_ON;
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 }
 }
 
 
 RendererCompositor::~RendererCompositor() {
 RendererCompositor::~RendererCompositor() {

+ 2 - 2
servers/rendering/renderer_rd/effects/vrs.cpp

@@ -135,7 +135,7 @@ void VRS::update_vrs_texture(RID p_vrs_fb, RID p_render_target) {
 					copy_vrs(rd_texture, p_vrs_fb, layers > 1);
 					copy_vrs(rd_texture, p_vrs_fb, layers > 1);
 				}
 				}
 			}
 			}
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 		} else if (vrs_mode == RS::VIEWPORT_VRS_XR) {
 		} else if (vrs_mode == RS::VIEWPORT_VRS_XR) {
 			Ref<XRInterface> interface = XRServer::get_singleton()->get_primary_interface();
 			Ref<XRInterface> interface = XRServer::get_singleton()->get_primary_interface();
 			if (interface.is_valid()) {
 			if (interface.is_valid()) {
@@ -150,7 +150,7 @@ void VRS::update_vrs_texture(RID p_vrs_fb, RID p_render_target) {
 					}
 					}
 				}
 				}
 			}
 			}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 		}
 		}
 
 
 		if (vrs_update_mode == RS::VIEWPORT_VRS_UPDATE_ONCE) {
 		if (vrs_update_mode == RS::VIEWPORT_VRS_UPDATE_ONCE) {

+ 2 - 0
servers/rendering/renderer_scene_cull.cpp

@@ -2726,6 +2726,7 @@ void RendererSceneCull::render_camera(const Ref<RenderSceneBuffers> &p_render_bu
 		}
 		}
 
 
 		camera_data.set_camera(transform, projection, is_orthogonal, is_frustum, vaspect, jitter, taa_frame_count, camera->visible_layers);
 		camera_data.set_camera(transform, projection, is_orthogonal, is_frustum, vaspect, jitter, taa_frame_count, camera->visible_layers);
+#ifndef XR_DISABLED
 	} else {
 	} else {
 		XRServer *xr_server = XRServer::get_singleton();
 		XRServer *xr_server = XRServer::get_singleton();
 
 
@@ -2763,6 +2764,7 @@ void RendererSceneCull::render_camera(const Ref<RenderSceneBuffers> &p_render_bu
 		} else {
 		} else {
 			// this won't be called (see fail check above) but keeping this comment to indicate we may support more then 2 views in the future...
 			// this won't be called (see fail check above) but keeping this comment to indicate we may support more then 2 views in the future...
 		}
 		}
+#endif // XR_DISABLED
 	}
 	}
 
 
 	RID environment = _render_get_environment(p_camera, p_scenario);
 	RID environment = _render_get_environment(p_camera, p_scenario);

+ 0 - 4
servers/rendering/renderer_scene_cull.h

@@ -47,10 +47,6 @@
 #include "servers/rendering/rendering_server_globals.h"
 #include "servers/rendering/rendering_server_globals.h"
 #include "servers/rendering/storage/utilities.h"
 #include "servers/rendering/storage/utilities.h"
 
 
-#ifndef _3D_DISABLED
-#include "servers/xr/xr_interface.h"
-#endif // _3D_DISABLED
-
 class RenderingLightCuller;
 class RenderingLightCuller;
 
 
 class RendererSceneCull : public RenderingMethod {
 class RendererSceneCull : public RenderingMethod {

+ 12 - 6
servers/rendering/renderer_viewport.cpp

@@ -38,6 +38,10 @@
 #include "rendering_server_globals.h"
 #include "rendering_server_globals.h"
 #include "storage/texture_storage.h"
 #include "storage/texture_storage.h"
 
 
+#ifndef XR_DISABLED
+#include "servers/xr/xr_interface.h"
+#endif // XR_DISABLED
+
 static Transform2D _canvas_get_transform(RendererViewport::Viewport *p_viewport, RendererCanvasCull::Canvas *p_canvas, RendererViewport::Viewport::CanvasData *p_canvas_data, const Vector2 &p_vp_size) {
 static Transform2D _canvas_get_transform(RendererViewport::Viewport *p_viewport, RendererCanvasCull::Canvas *p_canvas, RendererViewport::Viewport::CanvasData *p_canvas_data, const Vector2 &p_vp_size) {
 	Transform2D xf = p_viewport->global_transform;
 	Transform2D xf = p_viewport->global_transform;
 
 
@@ -272,9 +276,11 @@ void RendererViewport::_draw_3d(Viewport *p_viewport) {
 	RENDER_TIMESTAMP("> Render 3D Scene");
 	RENDER_TIMESTAMP("> Render 3D Scene");
 
 
 	Ref<XRInterface> xr_interface;
 	Ref<XRInterface> xr_interface;
+#ifndef XR_DISABLED
 	if (p_viewport->use_xr && XRServer::get_singleton() != nullptr) {
 	if (p_viewport->use_xr && XRServer::get_singleton() != nullptr) {
 		xr_interface = XRServer::get_singleton()->get_primary_interface();
 		xr_interface = XRServer::get_singleton()->get_primary_interface();
 	}
 	}
+#endif // XR_DISABLED
 
 
 	if (p_viewport->use_occlusion_culling) {
 	if (p_viewport->use_occlusion_culling) {
 		if (p_viewport->occlusion_buffer_dirty) {
 		if (p_viewport->occlusion_buffer_dirty) {
@@ -713,7 +719,7 @@ void RendererViewport::_draw_viewport(Viewport *p_viewport) {
 void RendererViewport::draw_viewports(bool p_swap_buffers) {
 void RendererViewport::draw_viewports(bool p_swap_buffers) {
 	timestamp_vp_map.clear();
 	timestamp_vp_map.clear();
 
 
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	// get our xr interface in case we need it
 	// get our xr interface in case we need it
 	Ref<XRInterface> xr_interface;
 	Ref<XRInterface> xr_interface;
 	XRServer *xr_server = XRServer::get_singleton();
 	XRServer *xr_server = XRServer::get_singleton();
@@ -724,7 +730,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) {
 		// retrieve the interface responsible for rendering
 		// retrieve the interface responsible for rendering
 		xr_interface = xr_server->get_primary_interface();
 		xr_interface = xr_server->get_primary_interface();
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 	if (Engine::get_singleton()->is_editor_hint()) {
 	if (Engine::get_singleton()->is_editor_hint()) {
 		RSG::texture_storage->set_default_clear_color(GLOBAL_GET("rendering/environment/defaults/default_clear_color"));
 		RSG::texture_storage->set_default_clear_color(GLOBAL_GET("rendering/environment/defaults/default_clear_color"));
@@ -757,7 +763,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) {
 
 
 		bool visible = vp->viewport_to_screen_rect != Rect2();
 		bool visible = vp->viewport_to_screen_rect != Rect2();
 
 
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 		if (vp->use_xr) {
 		if (vp->use_xr) {
 			if (xr_interface.is_valid()) {
 			if (xr_interface.is_valid()) {
 				// Ignore update mode we have to commit frames to our XR interface
 				// Ignore update mode we have to commit frames to our XR interface
@@ -772,7 +778,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) {
 				vp->size = Size2();
 				vp->size = Size2();
 			}
 			}
 		} else
 		} else
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 		{
 		{
 			if (vp->update_mode == RS::VIEWPORT_UPDATE_ALWAYS || vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) {
 			if (vp->update_mode == RS::VIEWPORT_UPDATE_ALWAYS || vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) {
 				visible = true;
 				visible = true;
@@ -811,7 +817,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) {
 		RENDER_TIMESTAMP("> Render Viewport " + itos(i));
 		RENDER_TIMESTAMP("> Render Viewport " + itos(i));
 
 
 		RSG::texture_storage->render_target_set_as_unused(vp->render_target);
 		RSG::texture_storage->render_target_set_as_unused(vp->render_target);
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 		if (vp->use_xr && xr_interface.is_valid()) {
 		if (vp->use_xr && xr_interface.is_valid()) {
 			// Inform XR interface we're about to render its viewport,
 			// Inform XR interface we're about to render its viewport,
 			// if this returns false we don't render.
 			// if this returns false we don't render.
@@ -860,7 +866,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) {
 				}
 				}
 			}
 			}
 		} else
 		} else
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 		{
 		{
 			RSG::scene->set_debug_draw_mode(vp->debug_draw);
 			RSG::scene->set_debug_draw_mode(vp->debug_draw);
 
 

+ 0 - 4
servers/rendering/renderer_viewport.h

@@ -37,10 +37,6 @@
 #include "servers/rendering_server.h"
 #include "servers/rendering_server.h"
 #include "storage/render_scene_buffers.h"
 #include "storage/render_scene_buffers.h"
 
 
-#ifndef _3D_DISABLED
-#include "servers/xr/xr_interface.h"
-#endif // _3D_DISABLED
-
 class RendererViewport {
 class RendererViewport {
 public:
 public:
 	struct CanvasBase {
 	struct CanvasBase {

+ 3 - 3
servers/rendering/rendering_method.h

@@ -34,13 +34,13 @@
 #include "servers/rendering/storage/render_scene_buffers.h"
 #include "servers/rendering/storage/render_scene_buffers.h"
 #include "servers/rendering_server.h"
 #include "servers/rendering_server.h"
 
 
-#ifdef _3D_DISABLED
+#ifdef XR_DISABLED
 // RendererSceneCull::render_camera is empty when 3D is disabled, but
 // RendererSceneCull::render_camera is empty when 3D is disabled, but
 // it and RenderingMethod::render_camera have a parameter for XRInterface.
 // it and RenderingMethod::render_camera have a parameter for XRInterface.
 #define XRInterface RefCounted
 #define XRInterface RefCounted
-#else // 3D enabled
+#else
 #include "servers/xr/xr_interface.h"
 #include "servers/xr/xr_interface.h"
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 class RenderingMethod {
 class RenderingMethod {
 public:
 public:

+ 2 - 2
servers/rendering/rendering_server_default.cpp

@@ -87,13 +87,13 @@ void RenderingServerDefault::_draw(bool p_swap_buffers, double frame_step) {
 
 
 	RSG::rasterizer->end_frame(p_swap_buffers);
 	RSG::rasterizer->end_frame(p_swap_buffers);
 
 
-#ifndef _3D_DISABLED
+#ifndef XR_DISABLED
 	XRServer *xr_server = XRServer::get_singleton();
 	XRServer *xr_server = XRServer::get_singleton();
 	if (xr_server != nullptr) {
 	if (xr_server != nullptr) {
 		// let our XR server know we're done so we can get our frame timing
 		// let our XR server know we're done so we can get our frame timing
 		xr_server->end_frame();
 		xr_server->end_frame();
 	}
 	}
-#endif // _3D_DISABLED
+#endif // XR_DISABLED
 
 
 	RSG::canvas->update_visibility_notifiers();
 	RSG::canvas->update_visibility_notifiers();
 	RSG::scene->update_visibility_notifiers();
 	RSG::scene->update_visibility_notifiers();