Преглед изворни кода

Update Meta hand tracking version

https://developer.oculus.com/blog/presence-platforms-hand-tracking-api-gets-an-upgrade/
Fredy Huya-Kouadio пре 3 година
родитељ
комит
c63ca6c72b

+ 12 - 5
platform/android/export/export_plugin.cpp

@@ -1000,16 +1000,23 @@ void EditorExportPlatformAndroid::_fix_manifest(const Ref<EditorExportPreset> &p
 						}
 					}
 
-					if (tname == "meta-data" && attrname == "name" && value == "xr_hand_tracking_metadata_name") {
-						if (xr_mode_index == XR_MODE_OPENXR && hand_tracking_index > XR_HAND_TRACKING_NONE) {
+					// Hand tracking related configurations
+					if (xr_mode_index == XR_MODE_OPENXR && hand_tracking_index > XR_HAND_TRACKING_NONE) {
+						if (tname == "meta-data" && attrname == "name" && value == "xr_hand_tracking_metadata_name") {
 							string_table.write[attr_value] = "com.oculus.handtracking.frequency";
 						}
-					}
 
-					if (tname == "meta-data" && attrname == "value" && value == "xr_hand_tracking_metadata_value") {
-						if (xr_mode_index == XR_MODE_OPENXR && hand_tracking_index > XR_HAND_TRACKING_NONE) {
+						if (tname == "meta-data" && attrname == "value" && value == "xr_hand_tracking_metadata_value") {
 							string_table.write[attr_value] = (hand_tracking_frequency_index == XR_HAND_TRACKING_FREQUENCY_LOW ? "LOW" : "HIGH");
 						}
+
+						if (tname == "meta-data" && attrname == "name" && value == "xr_hand_tracking_version_name") {
+							string_table.write[attr_value] = "com.oculus.handtracking.version";
+						}
+
+						if (tname == "meta-data" && attrname == "name" && value == "xr_hand_tracking_version_value") {
+							string_table.write[attr_value] = "V2.0";
+						}
 					}
 
 					iofs += 20;

+ 2 - 0
platform/android/export/gradle_export_util.cpp

@@ -279,6 +279,7 @@ String _get_application_tag(const Ref<EditorExportPreset> &p_preset, bool p_has_
 			"        android:requestLegacyExternalStorage=\"%s\"\n"
 			"        tools:replace=\"android:allowBackup,android:isGame,android:hasFragileUserData,android:requestLegacyExternalStorage\"\n"
 			"        tools:ignore=\"GoogleAppIndexingWarning\">\n\n"
+			"        <meta-data tools:node=\"remove\" android:name=\"xr_hand_tracking_version_name\" />\n"
 			"        <meta-data tools:node=\"remove\" android:name=\"xr_hand_tracking_metadata_name\" />\n",
 			bool_to_string(p_preset->get("user_data_backup/allow")),
 			bool_to_string(p_preset->get("package/classify_as_game")),
@@ -293,6 +294,7 @@ String _get_application_tag(const Ref<EditorExportPreset> &p_preset, bool p_has_
 			manifest_application_text += vformat(
 					"        <meta-data tools:node=\"replace\" android:name=\"com.oculus.handtracking.frequency\" android:value=\"%s\" />\n",
 					hand_tracking_frequency);
+			manifest_application_text += "        <meta-data tools:node=\"replace\" android:name=\"com.oculus.handtracking.version\" android:value=\"V2.0\" />\n";
 		}
 	} else {
 		manifest_application_text += "        <meta-data tools:node=\"remove\" android:name=\"com.oculus.supportedDevices\" />\n";

+ 7 - 0
platform/android/java/app/AndroidManifest.xml

@@ -40,6 +40,13 @@
             android:name="xr_hand_tracking_metadata_name"
             android:value="xr_hand_tracking_metadata_value"/>
 
+        <!-- XR hand tracking version -->
+        <!-- This is modified by the exporter based on the selected xr mode. DO NOT CHANGE the values here. -->
+        <!-- Removed at export time if the xr mode is not VR or hand tracking is disabled. -->
+        <meta-data
+            android:name="xr_hand_tracking_version_name"
+            android:value="xr_hand_tracking_version_value"/>
+
         <!-- Supported Meta devices -->
         <!-- This is removed by the exporter if the xr mode is not VR. -->
         <meta-data