The open source OpenXR runtime

xrt: build plumbing for XR_ANDROID_face_tracking

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2605>

+1
CMakeLists.txt
··· 368 368 option(XRT_FEATURE_OPENXR_ACTIVE_ACTION_SET_PRIORITY "Enable XR_EXT_active_action_set_priority" ON) 369 369 option(XRT_FEATURE_OPENXR_BODY_TRACKING_FB "Enable XR_FB_body_tracking" OFF) 370 370 option(XRT_FEATURE_OPENXR_DISPLAY_REFRESH_RATE "Enable XR_FB_display_refresh_rate" ON) 371 + option(XRT_FEATURE_OPENXR_FACE_TRACKING_ANDROID "Enable XR_ANDROID_face_tracking" OFF) 371 372 option(XRT_FEATURE_OPENXR_FACE_TRACKING2_FB "Enable XR_FB_face_tracking2" OFF) 372 373 option(XRT_FEATURE_OPENXR_FACIAL_TRACKING_HTC "Enable XR_HTC_facial_tracking" OFF) 373 374 option(XRT_FEATURE_OPENXR_FORCE_FEEDBACK_CURL "Enable XR_MNDX_force_feedback_curl" ON)
+1
scripts/generate_oxr_ext_support.py
··· 76 76 ['XR_EXT_samsung_odyssey_controller', 'XRT_FEATURE_OPENXR_INTERACTION_WINMR'], 77 77 ['XR_EXT_user_presence', 'XRT_FEATURE_OPENXR_USER_PRESENCE'], 78 78 # Vendor extensions, sorted alphabetically. 79 + ['XR_ANDROID_face_tracking', 'XRT_FEATURE_OPENXR_FACE_TRACKING_ANDROID'], 79 80 ['XR_BD_controller_interaction', 'XRT_FEATURE_OPENXR_INTERACTION_BYTEDANCE'], 80 81 ['XR_FB_body_tracking', 'XRT_FEATURE_OPENXR_BODY_TRACKING_FB'], 81 82 ['XR_FB_composition_layer_alpha_blend', 'XRT_FEATURE_OPENXR_LAYER_FB_ALPHA_BLEND'],
+1
scripts/mapping.imp
··· 40 40 { symbol: ["XRT_FEATURE_OPENXR_BODY_TRACKING_FULL_BODY_META", "public", "\"xrt/xrt_config_build.h\"", "public"] }, 41 41 { symbol: ["XRT_FEATURE_OPENXR_DEBUG_UTILS", "public", "\"xrt/xrt_config_build.h\"", "public"] }, 42 42 { symbol: ["XRT_FEATURE_OPENXR_DISPLAY_REFRESH_RATE", "public", "\"xrt/xrt_config_build.h\"", "public"] }, 43 + { symbol: ["XRT_FEATURE_OPENXR_FACE_TRACKING_ANDROID", "public", "\"xrt/xrt_config_build.h\"", "public"] }, 43 44 { symbol: ["XRT_FEATURE_OPENXR_FACE_TRACKING2_FB", "public", "\"xrt/xrt_config_build.h\"", "public"] }, 44 45 { symbol: ["XRT_FEATURE_OPENXR_FACIAL_TRACKING_HTC", "public", "\"xrt/xrt_config_build.h\"", "public"] }, 45 46 { symbol: ["XRT_FEATURE_OPENXR_FORCE_FEEDBACK_CURL", "public", "\"xrt/xrt_config_build.h\"", "public"] },
+1
src/xrt/compositor/multi/comp_multi_system.c
··· 423 423 .fb_face_tracking2_enabled = false, 424 424 .meta_body_tracking_full_body_enabled = false, 425 425 .meta_body_tracking_calibration_enabled = false, 426 + .android_face_tracking_enabled = false, 426 427 }; 427 428 428 429 switch (msc->sessions.state) {
+1
src/xrt/include/xrt/xrt_compositor.h
··· 966 966 bool fb_face_tracking2_enabled; 967 967 bool meta_body_tracking_full_body_enabled; 968 968 bool meta_body_tracking_calibration_enabled; 969 + bool android_face_tracking_enabled; 969 970 }; 970 971 971 972 /*!
+1
src/xrt/include/xrt/xrt_config_build.h.cmake_in
··· 37 37 #cmakedefine XRT_FEATURE_OPENXR_BODY_TRACKING_FULL_BODY_META 38 38 #cmakedefine XRT_FEATURE_OPENXR_DEBUG_UTILS 39 39 #cmakedefine XRT_FEATURE_OPENXR_DISPLAY_REFRESH_RATE 40 + #cmakedefine XRT_FEATURE_OPENXR_FACE_TRACKING_ANDROID 40 41 #cmakedefine XRT_FEATURE_OPENXR_FACE_TRACKING2_FB 41 42 #cmakedefine XRT_FEATURE_OPENXR_FACIAL_TRACKING_HTC 42 43 #cmakedefine XRT_FEATURE_OPENXR_FORCE_FEEDBACK_CURL
+1
src/xrt/include/xrt/xrt_instance.h
··· 82 82 bool fb_face_tracking2_enabled; 83 83 bool meta_body_tracking_full_body_enabled; 84 84 bool meta_body_tracking_calibration_enabled; 85 + bool android_face_tracking_enabled; 85 86 }; 86 87 87 88 /*!
+2
src/xrt/ipc/server/ipc_server_handler.c
··· 388 388 EXT(meta_body_tracking_full_body_enabled); 389 389 EXT(meta_body_tracking_calibration_enabled); 390 390 EXT(fb_face_tracking2_enabled); 391 + EXT(android_face_tracking_enabled); 391 392 392 393 #undef EXT 393 394 #undef PTT ··· 505 506 .fb_face_tracking2_enabled = ics->client_state.info.fb_face_tracking2_enabled, 506 507 .meta_body_tracking_full_body_enabled = ics->client_state.info.meta_body_tracking_full_body_enabled, 507 508 .meta_body_tracking_calibration_enabled = ics->client_state.info.meta_body_tracking_calibration_enabled, 509 + .android_face_tracking_enabled = ics->client_state.info.android_face_tracking_enabled, 508 510 }; 509 511 510 512 return xrt_comp_begin_session(ics->xc, &begin_session_info);
+12
src/xrt/state_trackers/oxr/oxr_extension_support.h
··· 475 475 476 476 477 477 /* 478 + * XR_ANDROID_face_tracking 479 + */ 480 + #if defined(XR_ANDROID_face_tracking) && defined(XRT_FEATURE_OPENXR_FACE_TRACKING_ANDROID) 481 + #define OXR_HAVE_ANDROID_face_tracking 482 + #define OXR_EXTENSION_SUPPORT_ANDROID_face_tracking(_) _(ANDROID_face_tracking, ANDROID_FACE_TRACKING) 483 + #else 484 + #define OXR_EXTENSION_SUPPORT_ANDROID_face_tracking(_) 485 + #endif 486 + 487 + 488 + /* 478 489 * XR_BD_controller_interaction 479 490 */ 480 491 #if defined(XR_BD_controller_interaction) && defined(XRT_FEATURE_OPENXR_INTERACTION_BYTEDANCE) ··· 936 947 OXR_EXTENSION_SUPPORT_EXT_plane_detection(_) \ 937 948 OXR_EXTENSION_SUPPORT_EXT_samsung_odyssey_controller(_) \ 938 949 OXR_EXTENSION_SUPPORT_EXT_user_presence(_) \ 950 + OXR_EXTENSION_SUPPORT_ANDROID_face_tracking(_) \ 939 951 OXR_EXTENSION_SUPPORT_BD_controller_interaction(_) \ 940 952 OXR_EXTENSION_SUPPORT_FB_body_tracking(_) \ 941 953 OXR_EXTENSION_SUPPORT_FB_composition_layer_alpha_blend(_) \
+3
src/xrt/state_trackers/oxr/oxr_instance.c
··· 341 341 #ifdef OXR_HAVE_META_body_tracking_calibration 342 342 .meta_body_tracking_calibration_enabled = extensions->META_body_tracking_calibration, 343 343 #endif 344 + #ifdef OXR_HAVE_ANDROID_face_tracking 345 + .android_face_tracking_enabled = extensions->ANDROID_face_tracking, 346 + #endif 344 347 }; 345 348 snprintf(i_info.app_info.application_name, sizeof(i_info.app_info.application_name), "%s", 346 349 createInfo->applicationInfo.applicationName);
+3
src/xrt/state_trackers/oxr/oxr_session.c
··· 317 317 #ifdef OXR_HAVE_META_body_tracking_calibration 318 318 .meta_body_tracking_calibration_enabled = extensions->META_body_tracking_calibration, 319 319 #endif 320 + #ifdef OXR_HAVE_ANDROID_face_tracking 321 + .android_face_tracking_enabled = extensions->ANDROID_face_tracking, 322 + #endif 320 323 }; 321 324 322 325 xrt_result_t xret = xrt_comp_begin_session(xc, &begin_session_info);