diff options
Diffstat (limited to 'main/main.cpp')
-rw-r--r-- | main/main.cpp | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/main/main.cpp b/main/main.cpp index f0a05fcd63..ef0de8d2bf 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1746,21 +1746,31 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph { String driver_hints = ""; String driver_hints_angle = ""; + String driver_hints_egl = ""; #ifdef GLES3_ENABLED driver_hints = "opengl3"; driver_hints_angle = "opengl3,opengl3_angle"; + driver_hints_egl = "opengl3,opengl3_es"; #endif String default_driver = driver_hints.get_slice(",", 0); + String default_driver_macos = default_driver; +#if defined(GLES3_ENABLED) && defined(EGL_STATIC) && defined(MACOS_ENABLED) + default_driver_macos = "opengl3_angle"; // Default to ANGLE if it's built-in. +#endif GLOBAL_DEF_RST("rendering/gl_compatibility/driver", default_driver); GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.windows", PROPERTY_HINT_ENUM, driver_hints_angle), default_driver); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.linuxbsd", PROPERTY_HINT_ENUM, driver_hints), default_driver); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.linuxbsd", PROPERTY_HINT_ENUM, driver_hints_egl), default_driver); GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.web", PROPERTY_HINT_ENUM, driver_hints), default_driver); GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.android", PROPERTY_HINT_ENUM, driver_hints), default_driver); GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.ios", PROPERTY_HINT_ENUM, driver_hints), default_driver); - GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.macos", PROPERTY_HINT_ENUM, driver_hints_angle), default_driver); + GLOBAL_DEF_RST(PropertyInfo(Variant::STRING, "rendering/gl_compatibility/driver.macos", PROPERTY_HINT_ENUM, driver_hints_angle), default_driver_macos); + GLOBAL_DEF_RST("rendering/gl_compatibility/nvidia_disable_threaded_optimization", true); + GLOBAL_DEF_RST("rendering/gl_compatibility/fallback_to_angle", true); + + GLOBAL_DEF_RST(PropertyInfo(Variant::ARRAY, "rendering/gl_compatibility/force_angle_on_devices", PROPERTY_HINT_ARRAY_TYPE, vformat("%s/%s:%s", Variant::DICTIONARY, PROPERTY_HINT_NONE, String())), Array()); } // Start with RenderingDevice-based backends. Should be included if any RD driver present. @@ -1834,7 +1844,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph // Set a default renderer if none selected. Try to choose one that matches the driver. if (rendering_method.is_empty()) { - if (rendering_driver == "opengl3" || rendering_driver == "opengl3_angle") { + if (rendering_driver == "opengl3" || rendering_driver == "opengl3_angle" || rendering_driver == "opengl3_es") { rendering_method = "gl_compatibility"; } else { rendering_method = "forward_plus"; @@ -1853,6 +1863,7 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph if (rendering_method == "gl_compatibility") { available_drivers.push_back("opengl3"); available_drivers.push_back("opengl3_angle"); + available_drivers.push_back("opengl3_es"); } #endif if (available_drivers.is_empty()) { @@ -2113,6 +2124,9 @@ Error Main::setup(const char *execpath, int argc, char *argv[], bool p_second_ph GLOBAL_DEF_BASIC("xr/openxr/submit_depth_buffer", false); GLOBAL_DEF_BASIC("xr/openxr/startup_alert", true); + // XR project extensions settings. + GLOBAL_DEF_BASIC("xr/openxr/extensions/eye_gaze_interaction", false); + #ifdef TOOLS_ENABLED // Disabled for now, using XR inside of the editor we'll be working on during the coming months. |