mirror of
https://github.com/godotengine/godot.git
synced 2024-12-16 16:13:56 +00:00
Add support for focus awareness
This commit is contained in:
parent
ed1fc50bb9
commit
d1e4cede90
@ -786,6 +786,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
|||||||
bool screen_support_xlarge = p_preset->get("screen/support_xlarge");
|
bool screen_support_xlarge = p_preset->get("screen/support_xlarge");
|
||||||
|
|
||||||
int xr_mode_index = p_preset->get("xr_features/xr_mode");
|
int xr_mode_index = p_preset->get("xr_features/xr_mode");
|
||||||
|
bool focus_awareness = p_preset->get("xr_features/focus_awareness");
|
||||||
|
|
||||||
String plugins_names = get_plugins_names(get_enabled_plugins(p_preset));
|
String plugins_names = get_plugins_names(get_enabled_plugins(p_preset));
|
||||||
|
|
||||||
@ -957,6 +958,11 @@ class EditorExportPlatformAndroid : public EditorExportPlatform {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tname == "meta-data" && attrname == "value" && value == "oculus_focus_aware_value") {
|
||||||
|
// Update the focus awareness meta-data value
|
||||||
|
string_table.write[attr_value] = xr_mode_index == /* XRMode.OVR */ 1 && focus_awareness ? "true" : "false";
|
||||||
|
}
|
||||||
|
|
||||||
if (tname == "meta-data" && attrname == "value" && value == "plugins_value" && !plugins_names.empty()) {
|
if (tname == "meta-data" && attrname == "value" && value == "plugins_value" && !plugins_names.empty()) {
|
||||||
// Update the meta-data 'android:value' attribute with the list of enabled plugins.
|
// Update the meta-data 'android:value' attribute with the list of enabled plugins.
|
||||||
string_table.write[attr_value] = plugins_names;
|
string_table.write[attr_value] = plugins_names;
|
||||||
@ -1489,6 +1495,7 @@ public:
|
|||||||
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/xr_mode", PROPERTY_HINT_ENUM, "Regular,Oculus Mobile VR"), 0));
|
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/xr_mode", PROPERTY_HINT_ENUM, "Regular,Oculus Mobile VR"), 0));
|
||||||
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/degrees_of_freedom", PROPERTY_HINT_ENUM, "None,3DOF and 6DOF,6DOF"), 0));
|
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/degrees_of_freedom", PROPERTY_HINT_ENUM, "None,3DOF and 6DOF,6DOF"), 0));
|
||||||
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/hand_tracking", PROPERTY_HINT_ENUM, "None,Optional,Required"), 0));
|
r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "xr_features/hand_tracking", PROPERTY_HINT_ENUM, "None,Optional,Required"), 0));
|
||||||
|
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "xr_features/focus_awareness"), false));
|
||||||
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "one_click_deploy/clear_previous_install"), false));
|
r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "one_click_deploy/clear_previous_install"), false));
|
||||||
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/debug", PROPERTY_HINT_GLOBAL_FILE, "*.apk"), ""));
|
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/debug", PROPERTY_HINT_GLOBAL_FILE, "*.apk"), ""));
|
||||||
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/release", PROPERTY_HINT_GLOBAL_FILE, "*.apk"), ""));
|
r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_template/release", PROPERTY_HINT_GLOBAL_FILE, "*.apk"), ""));
|
||||||
@ -1920,6 +1927,31 @@ public:
|
|||||||
err += "\n";
|
err += "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Validate the Xr features are properly populated
|
||||||
|
int xr_mode_index = p_preset->get("xr_features/xr_mode");
|
||||||
|
int degrees_of_freedom = p_preset->get("xr_features/degrees_of_freedom");
|
||||||
|
int hand_tracking = p_preset->get("xr_features/hand_tracking");
|
||||||
|
bool focus_awareness = p_preset->get("xr_features/focus_awareness");
|
||||||
|
if (xr_mode_index != /* XRMode.OVR*/ 1) {
|
||||||
|
if (degrees_of_freedom > 0) {
|
||||||
|
valid = false;
|
||||||
|
err += TTR("\"Degrees Of Freedom\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\".");
|
||||||
|
err += "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hand_tracking > 0) {
|
||||||
|
valid = false;
|
||||||
|
err += TTR("\"Hand Tracking\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\".");
|
||||||
|
err += "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (focus_awareness) {
|
||||||
|
valid = false;
|
||||||
|
err += TTR("\"Focus Awareness\" is only valid when \"Xr Mode\" is \"Oculus Mobile VR\".");
|
||||||
|
err += "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
r_error = err;
|
r_error = err;
|
||||||
return valid;
|
return valid;
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,9 @@
|
|||||||
android:resizeableActivity="false"
|
android:resizeableActivity="false"
|
||||||
tools:ignore="UnusedAttribute" >
|
tools:ignore="UnusedAttribute" >
|
||||||
|
|
||||||
|
<!-- Focus awareness metadata populated at export time if the user enables it in the 'Xr Features' section. -->
|
||||||
|
<meta-data android:name="com.oculus.vr.focusaware" android:value="oculus_focus_aware_value" />
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
|
Loading…
Reference in New Issue
Block a user