mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 05:31:01 +00:00 
			
		
		
		
	Add support for focus awareness
This commit is contained in:
		
							parent
							
								
									ed1fc50bb9
								
							
						
					
					
						commit
						d1e4cede90
					
				
					 2 changed files with 35 additions and 0 deletions
				
			
		|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fredia Huya-Kouadio
						Fredia Huya-Kouadio