diff --git a/SConstruct b/SConstruct index f4500d75252..f4a17b91e4a 100644 --- a/SConstruct +++ b/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("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("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("disable_exceptions", "Force disabling exception handling code", True)) 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(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_xr", "Disable XR nodes and server", False)) 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("no_editor_splash", "Don't use the custom splash screen for the editor", True)) @@ -995,6 +995,7 @@ if env["disable_3d"]: Exit(255) else: env.Append(CPPDEFINES=["_3D_DISABLED"]) + env["disable_xr"] = True if env["disable_advanced_gui"]: if env.editor_build: print_error( @@ -1003,6 +1004,8 @@ if env["disable_advanced_gui"]: Exit(255) else: env.Append(CPPDEFINES=["ADVANCED_GUI_DISABLED"]) +if env["disable_xr"]: + env.Append(CPPDEFINES=["XR_DISABLED"]) if env["minizip"]: env.Append(CPPDEFINES=["MINIZIP_ENABLED"]) if env["brotli"]: diff --git a/editor/editor_build_profile.cpp b/editor/editor_build_profile.cpp index 849340dce79..1e4c9061f46 100644 --- a/editor/editor_build_profile.cpp +++ b/editor/editor_build_profile.cpp @@ -46,7 +46,7 @@ const char *EditorBuildProfile::build_option_identifiers[BUILD_OPTION_MAX] = { "disable_2d_physics", "disable_3d_physics", "disable_navigation", - "openxr", + "disable_xr", "rendering_device", // FIXME: there's no scons option to disable rendering device "opengl3", "vulkan", @@ -82,7 +82,7 @@ const bool EditorBuildProfile::build_option_disable_values[BUILD_OPTION_MAX] = { true, // PHYSICS_2D true, // PHYSICS_3D true, // NAVIGATION - false, // XR + true, // XR false, // RENDERING_DEVICE false, // OPENGL false, // VULKAN diff --git a/editor/gui/editor_run_bar.cpp b/editor/gui/editor_run_bar.cpp index 288ea96b609..ca941cbcb3d 100644 --- a/editor/gui/editor_run_bar.cpp +++ b/editor/gui/editor_run_bar.cpp @@ -587,7 +587,7 @@ EditorRunBar::EditorRunBar() { run_native->connect("native_run", callable_mp(this, &EditorRunBar::_run_native)); bool add_play_xr_mode_options = false; -#ifndef _3D_DISABLED +#ifndef XR_DISABLED if (OS::get_singleton()->has_feature("xr_editor") && (XRServer::get_xr_mode() == XRServer::XRMODE_ON || (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT && GLOBAL_GET("xr/openxr/enabled")))) { @@ -596,7 +596,7 @@ EditorRunBar::EditorRunBar() { // either regular mode or XR mode. add_play_xr_mode_options = true; } -#endif // _3D_DISABLED +#endif // XR_DISABLED if (add_play_xr_mode_options) { MenuButton *menu_button = memnew(MenuButton); diff --git a/main/main.cpp b/main/main.cpp index 10064b35037..10acacc5cd0 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -713,9 +713,9 @@ Error Main::test_setup() { /** INITIALIZE SERVERS **/ register_server_types(); -#ifndef _3D_DISABLED +#ifndef XR_DISABLED XRServer::set_xr_mode(XRServer::XRMODE_OFF); // Skip in tests. -#endif // _3D_DISABLED +#endif // XR_DISABLED initialize_modules(MODULE_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(); } else if (arg == "--skip-breakpoints") { skip_breakpoints = true; -#ifndef _3D_DISABLED +#ifndef XR_DISABLED } else if (arg == "--xr-mode") { if (N) { 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"); goto error; } -#endif // _3D_DISABLED +#endif // XR_DISABLED } else if (arg == "--benchmark") { OS::get_singleton()->set_use_benchmark(true); } 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"); } -#ifndef _3D_DISABLED +#ifndef XR_DISABLED /* Initialize XR Server */ { @@ -3206,7 +3206,7 @@ Error Main::setup2(bool p_show_boot_logo) { OS::get_singleton()->benchmark_end_measure("Servers", "XR"); } -#endif // _3D_DISABLED +#endif // XR_DISABLED OS::get_singleton()->benchmark_end_measure("Startup", "Servers"); @@ -4427,9 +4427,9 @@ bool Main::iteration() { bool exit = false; // process all our active interfaces -#ifndef _3D_DISABLED +#ifndef XR_DISABLED XRServer::get_singleton()->_process(); -#endif // _3D_DISABLED +#endif // XR_DISABLED NavigationServer2D::get_singleton()->sync(); NavigationServer3D::get_singleton()->sync(); @@ -4683,13 +4683,13 @@ void Main::cleanup(bool p_force) { //clear global shader variables before scene and other graphics stuff are deinitialized. rendering_server->global_shader_parameters_clear(); -#ifndef _3D_DISABLED +#ifndef XR_DISABLED if (xr_server) { // 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 xr_server->set_primary_interface(Ref()); } -#endif // _3D_DISABLED +#endif // XR_DISABLED #ifdef TOOLS_ENABLED GDExtensionManager::get_singleton()->deinitialize_extensions(GDExtension::INITIALIZATION_LEVEL_EDITOR); diff --git a/modules/mobile_vr/config.py b/modules/mobile_vr/config.py index f6b64fb690b..bbacf562313 100644 --- a/modules/mobile_vr/config.py +++ b/modules/mobile_vr/config.py @@ -1,5 +1,5 @@ def can_build(env, platform): - return not env["disable_3d"] + return not env["disable_xr"] def configure(env): diff --git a/modules/openxr/config.py b/modules/openxr/config.py index ca9e5ff95c3..80d886f7fcb 100644 --- a/modules/openxr/config.py +++ b/modules/openxr/config.py @@ -1,8 +1,8 @@ def can_build(env, platform): if platform in ("linuxbsd", "windows", "android", "macos"): - return env["openxr"] and not env["disable_3d"] + return not env["disable_xr"] else: - # not supported on these platforms + # Not supported on these platforms. return False diff --git a/modules/openxr/scene/openxr_composition_layer.cpp b/modules/openxr/scene/openxr_composition_layer.cpp index 47cb4f3af75..6122e892fc9 100644 --- a/modules/openxr/scene/openxr_composition_layer.cpp +++ b/modules/openxr/scene/openxr_composition_layer.cpp @@ -35,7 +35,7 @@ #include "../openxr_interface.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 "platform/android/api/java_class_wrapper.h" diff --git a/modules/openxr/scene/openxr_visibility_mask.cpp b/modules/openxr/scene/openxr_visibility_mask.cpp index 7214fac3272..b3006923c32 100644 --- a/modules/openxr/scene/openxr_visibility_mask.cpp +++ b/modules/openxr/scene/openxr_visibility_mask.cpp @@ -32,7 +32,7 @@ #include "../extensions/openxr_visibility_mask_extension.h" #include "../openxr_interface.h" -#include "scene/3d/xr_nodes.h" +#include "scene/3d/xr/xr_nodes.h" void OpenXRVisibilityMask::_bind_methods() { } diff --git a/modules/webxr/config.py b/modules/webxr/config.py index 8d75e7f531b..357dcde0b6c 100644 --- a/modules/webxr/config.py +++ b/modules/webxr/config.py @@ -1,5 +1,5 @@ def can_build(env, platform): - return env["opengl3"] and not env["disable_3d"] + return env["opengl3"] and not env["disable_xr"] def configure(env): diff --git a/platform/android/java_godot_lib_jni.cpp b/platform/android/java_godot_lib_jni.cpp index 054c809c6e3..658287cc1fa 100644 --- a/platform/android/java_godot_lib_jni.cpp +++ b/platform/android/java_godot_lib_jni.cpp @@ -272,7 +272,7 @@ JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, if (step.get() == STEP_SHOW_LOGO) { 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, // so we skip this step if xr is enabled. if (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT) { @@ -280,7 +280,7 @@ JNIEXPORT jboolean JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, } else { xr_enabled = XRServer::get_xr_mode() == XRServer::XRMODE_ON; } -#endif // _3D_DISABLED +#endif // XR_DISABLED if (!xr_enabled) { Main::setup_boot_logo(); } diff --git a/scene/3d/SCsub b/scene/3d/SCsub index 6f6bf9818cc..e587a66123e 100644 --- a/scene/3d/SCsub +++ b/scene/3d/SCsub @@ -7,3 +7,5 @@ env.add_source_files(env.scene_sources, "*.cpp") # Chain load SCsubs SConscript("physics/SCsub") +if not env["disable_xr"]: + SConscript("xr/SCsub") diff --git a/scene/3d/xr/SCsub b/scene/3d/xr/SCsub new file mode 100644 index 00000000000..374dc2119dc --- /dev/null +++ b/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") diff --git a/scene/3d/xr_body_modifier_3d.cpp b/scene/3d/xr/xr_body_modifier_3d.cpp similarity index 100% rename from scene/3d/xr_body_modifier_3d.cpp rename to scene/3d/xr/xr_body_modifier_3d.cpp diff --git a/scene/3d/xr_body_modifier_3d.h b/scene/3d/xr/xr_body_modifier_3d.h similarity index 100% rename from scene/3d/xr_body_modifier_3d.h rename to scene/3d/xr/xr_body_modifier_3d.h diff --git a/scene/3d/xr_face_modifier_3d.cpp b/scene/3d/xr/xr_face_modifier_3d.cpp similarity index 100% rename from scene/3d/xr_face_modifier_3d.cpp rename to scene/3d/xr/xr_face_modifier_3d.cpp diff --git a/scene/3d/xr_face_modifier_3d.h b/scene/3d/xr/xr_face_modifier_3d.h similarity index 98% rename from scene/3d/xr_face_modifier_3d.h rename to scene/3d/xr/xr_face_modifier_3d.h index e5e59afe1d6..dff4cdb5785 100644 --- a/scene/3d/xr_face_modifier_3d.h +++ b/scene/3d/xr/xr_face_modifier_3d.h @@ -31,7 +31,7 @@ #ifndef 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" /** diff --git a/scene/3d/xr_hand_modifier_3d.cpp b/scene/3d/xr/xr_hand_modifier_3d.cpp similarity index 100% rename from scene/3d/xr_hand_modifier_3d.cpp rename to scene/3d/xr/xr_hand_modifier_3d.cpp diff --git a/scene/3d/xr_hand_modifier_3d.h b/scene/3d/xr/xr_hand_modifier_3d.h similarity index 100% rename from scene/3d/xr_hand_modifier_3d.h rename to scene/3d/xr/xr_hand_modifier_3d.h diff --git a/scene/3d/xr_nodes.cpp b/scene/3d/xr/xr_nodes.cpp similarity index 100% rename from scene/3d/xr_nodes.cpp rename to scene/3d/xr/xr_nodes.cpp diff --git a/scene/3d/xr_nodes.h b/scene/3d/xr/xr_nodes.h similarity index 100% rename from scene/3d/xr_nodes.h rename to scene/3d/xr/xr_nodes.h diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index d0054baeff2..333044a2879 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -701,7 +701,7 @@ void Viewport::_process_picking() { physics_picking_events.clear(); return; } -#ifndef _3D_DISABLED +#ifndef XR_DISABLED if (use_xr) { if (XRServer::get_singleton() != nullptr) { Ref xr_interface = XRServer::get_singleton()->get_primary_interface(); @@ -712,7 +712,7 @@ void Viewport::_process_picking() { } } } -#endif +#endif // XR_DISABLED _drop_physics_mouseover(true); @@ -1058,7 +1058,7 @@ bool Viewport::_set_size(const Size2i &p_size, const Size2i &p_size_2d_override, } Size2i Viewport::_get_size() const { -#ifndef _3D_DISABLED +#ifndef XR_DISABLED if (use_xr) { if (XRServer::get_singleton() != nullptr) { Ref xr_interface = XRServer::get_singleton()->get_primary_interface(); @@ -1069,7 +1069,7 @@ Size2i Viewport::_get_size() const { } return Size2i(); } -#endif // _3D_DISABLED +#endif // XR_DISABLED return size; } diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index a665fa90b8b..260170dba20 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -293,10 +293,10 @@ #include "scene/3d/visible_on_screen_notifier_3d.h" #include "scene/3d/voxel_gi.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/resources/3d/box_shape_3d.h" #include "scene/resources/3d/capsule_shape_3d.h" @@ -555,6 +555,7 @@ void register_scene_types() { GDREGISTER_VIRTUAL_CLASS(GeometryInstance3D); GDREGISTER_CLASS(Camera3D); GDREGISTER_CLASS(AudioListener3D); +#ifndef XR_DISABLED GDREGISTER_CLASS(XRCamera3D); GDREGISTER_CLASS(XRNode3D); GDREGISTER_CLASS(XRController3D); @@ -563,6 +564,7 @@ void register_scene_types() { GDREGISTER_CLASS(XRBodyModifier3D); GDREGISTER_CLASS(XRHandModifier3D); GDREGISTER_CLASS(XRFaceModifier3D); +#endif // XR_DISABLED GDREGISTER_CLASS(MeshInstance3D); GDREGISTER_CLASS(OccluderInstance3D); GDREGISTER_ABSTRACT_CLASS(Occluder3D); diff --git a/scu_builders.py b/scu_builders.py index 8e1f91d7406..20432fb54ae 100644 --- a/scu_builders.py +++ b/scu_builders.py @@ -343,6 +343,7 @@ def generate_scu_files(max_includes_per_scu): process_folder(["scene/3d"]) process_folder(["scene/3d/physics"]) process_folder(["scene/3d/physics/joints"]) + process_folder(["scene/3d/xr"]) process_folder(["scene/animation"]) process_folder(["scene/gui"]) process_folder(["scene/main"]) diff --git a/servers/SCsub b/servers/SCsub index 7abe53b9e17..8e4cd450c0c 100644 --- a/servers/SCsub +++ b/servers/SCsub @@ -29,8 +29,10 @@ SConscript("text/SCsub") 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_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) diff --git a/servers/register_server_types.cpp b/servers/register_server_types.cpp index e6326f2385b..e537922b040 100644 --- a/servers/register_server_types.cpp +++ b/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)); +#ifndef XR_DISABLED GDREGISTER_ABSTRACT_CLASS(XRInterface); GDREGISTER_CLASS(XRVRS); GDREGISTER_CLASS(XRBodyTracker); @@ -318,6 +319,7 @@ void register_server_types() { GDREGISTER_CLASS(XRPositionalTracker); GDREGISTER_CLASS(XRServer); GDREGISTER_ABSTRACT_CLASS(XRTracker); +#endif // XR_DISABLED #endif // _3D_DISABLED GDREGISTER_ABSTRACT_CLASS(NavigationServer3D); @@ -358,7 +360,9 @@ void register_server_singletons() { Engine::get_singleton()->add_singleton(Engine::Singleton("PhysicsServer2D", PhysicsServer2D::get_singleton(), "PhysicsServer2D")); #ifndef _3D_DISABLED 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")); +#endif // XR_DISABLED #endif // _3D_DISABLED OS::get_singleton()->benchmark_end_measure("Servers", "Register Singletons"); diff --git a/servers/rendering/renderer_compositor.cpp b/servers/rendering/renderer_compositor.cpp index 428cecead1a..b6c9c04ede2 100644 --- a/servers/rendering/renderer_compositor.cpp +++ b/servers/rendering/renderer_compositor.cpp @@ -50,13 +50,13 @@ RendererCompositor::RendererCompositor() { ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCompositor singleton already exists."); singleton = this; -#ifndef _3D_DISABLED +#ifndef XR_DISABLED if (XRServer::get_xr_mode() == XRServer::XRMODE_DEFAULT) { xr_enabled = GLOBAL_GET("xr/shaders/enabled"); } else { xr_enabled = XRServer::get_xr_mode() == XRServer::XRMODE_ON; } -#endif // _3D_DISABLED +#endif // XR_DISABLED } RendererCompositor::~RendererCompositor() { diff --git a/servers/rendering/renderer_rd/effects/vrs.cpp b/servers/rendering/renderer_rd/effects/vrs.cpp index 9cc22f6f5ef..461cc6cb31b 100644 --- a/servers/rendering/renderer_rd/effects/vrs.cpp +++ b/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); } } -#ifndef _3D_DISABLED +#ifndef XR_DISABLED } else if (vrs_mode == RS::VIEWPORT_VRS_XR) { Ref interface = XRServer::get_singleton()->get_primary_interface(); 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) { diff --git a/servers/rendering/renderer_scene_cull.cpp b/servers/rendering/renderer_scene_cull.cpp index 49f93cbb0d0..e77449947e9 100644 --- a/servers/rendering/renderer_scene_cull.cpp +++ b/servers/rendering/renderer_scene_cull.cpp @@ -2726,6 +2726,7 @@ void RendererSceneCull::render_camera(const Ref &p_render_bu } camera_data.set_camera(transform, projection, is_orthogonal, is_frustum, vaspect, jitter, taa_frame_count, camera->visible_layers); +#ifndef XR_DISABLED } else { XRServer *xr_server = XRServer::get_singleton(); @@ -2763,6 +2764,7 @@ void RendererSceneCull::render_camera(const Ref &p_render_bu } 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... } +#endif // XR_DISABLED } RID environment = _render_get_environment(p_camera, p_scenario); diff --git a/servers/rendering/renderer_scene_cull.h b/servers/rendering/renderer_scene_cull.h index 24f11ec1460..0348cf4b539 100644 --- a/servers/rendering/renderer_scene_cull.h +++ b/servers/rendering/renderer_scene_cull.h @@ -47,10 +47,6 @@ #include "servers/rendering/rendering_server_globals.h" #include "servers/rendering/storage/utilities.h" -#ifndef _3D_DISABLED -#include "servers/xr/xr_interface.h" -#endif // _3D_DISABLED - class RenderingLightCuller; class RendererSceneCull : public RenderingMethod { diff --git a/servers/rendering/renderer_viewport.cpp b/servers/rendering/renderer_viewport.cpp index b816ca7a8ab..3a8f445c4be 100644 --- a/servers/rendering/renderer_viewport.cpp +++ b/servers/rendering/renderer_viewport.cpp @@ -38,6 +38,10 @@ #include "rendering_server_globals.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) { Transform2D xf = p_viewport->global_transform; @@ -272,9 +276,11 @@ void RendererViewport::_draw_3d(Viewport *p_viewport) { RENDER_TIMESTAMP("> Render 3D Scene"); Ref xr_interface; +#ifndef XR_DISABLED if (p_viewport->use_xr && XRServer::get_singleton() != nullptr) { xr_interface = XRServer::get_singleton()->get_primary_interface(); } +#endif // XR_DISABLED if (p_viewport->use_occlusion_culling) { 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) { timestamp_vp_map.clear(); -#ifndef _3D_DISABLED +#ifndef XR_DISABLED // get our xr interface in case we need it Ref xr_interface; XRServer *xr_server = XRServer::get_singleton(); @@ -724,7 +730,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { // retrieve the interface responsible for rendering xr_interface = xr_server->get_primary_interface(); } -#endif // _3D_DISABLED +#endif // XR_DISABLED if (Engine::get_singleton()->is_editor_hint()) { 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(); -#ifndef _3D_DISABLED +#ifndef XR_DISABLED if (vp->use_xr) { if (xr_interface.is_valid()) { // 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(); } } else -#endif // _3D_DISABLED +#endif // XR_DISABLED { if (vp->update_mode == RS::VIEWPORT_UPDATE_ALWAYS || vp->update_mode == RS::VIEWPORT_UPDATE_ONCE) { visible = true; @@ -811,7 +817,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { RENDER_TIMESTAMP("> Render Viewport " + itos(i)); 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()) { // Inform XR interface we're about to render its viewport, // if this returns false we don't render. @@ -860,7 +866,7 @@ void RendererViewport::draw_viewports(bool p_swap_buffers) { } } } else -#endif // _3D_DISABLED +#endif // XR_DISABLED { RSG::scene->set_debug_draw_mode(vp->debug_draw); diff --git a/servers/rendering/renderer_viewport.h b/servers/rendering/renderer_viewport.h index 2e5876cc7b6..d64b5b2bf8f 100644 --- a/servers/rendering/renderer_viewport.h +++ b/servers/rendering/renderer_viewport.h @@ -37,10 +37,6 @@ #include "servers/rendering_server.h" #include "storage/render_scene_buffers.h" -#ifndef _3D_DISABLED -#include "servers/xr/xr_interface.h" -#endif // _3D_DISABLED - class RendererViewport { public: struct CanvasBase { diff --git a/servers/rendering/rendering_method.h b/servers/rendering/rendering_method.h index 34f11924ceb..1e1628912f4 100644 --- a/servers/rendering/rendering_method.h +++ b/servers/rendering/rendering_method.h @@ -34,13 +34,13 @@ #include "servers/rendering/storage/render_scene_buffers.h" #include "servers/rendering_server.h" -#ifdef _3D_DISABLED +#ifdef XR_DISABLED // RendererSceneCull::render_camera is empty when 3D is disabled, but // it and RenderingMethod::render_camera have a parameter for XRInterface. #define XRInterface RefCounted -#else // 3D enabled +#else #include "servers/xr/xr_interface.h" -#endif // _3D_DISABLED +#endif // XR_DISABLED class RenderingMethod { public: diff --git a/servers/rendering/rendering_server_default.cpp b/servers/rendering/rendering_server_default.cpp index 9c2e0af31d6..3a381401a23 100644 --- a/servers/rendering/rendering_server_default.cpp +++ b/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); -#ifndef _3D_DISABLED +#ifndef XR_DISABLED XRServer *xr_server = XRServer::get_singleton(); if (xr_server != nullptr) { // let our XR server know we're done so we can get our frame timing xr_server->end_frame(); } -#endif // _3D_DISABLED +#endif // XR_DISABLED RSG::canvas->update_visibility_notifiers(); RSG::scene->update_visibility_notifiers();