This commit is contained in:
bjorn 2023-01-30 19:44:23 -08:00
parent bd03180d44
commit bf31072d0d
4 changed files with 29 additions and 29 deletions

View File

@ -760,16 +760,18 @@ elseif(ANDROID)
if(LOVR_USE_OPENXR)
add_custom_command(TARGET move_files POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_SONAME_FILE:${LOVR_OPENXR}>
raw/lib/${ANDROID_ABI}/libopenxr_loader_generic.so
)
set (PICO_LOADER "${CMAKE_CURRENT_SOURCE_DIR}/deps/pico-openxr/libs/android.${ANDROID_ABI}/libopenxr_loader.so")
if (EXISTS ${PICO_LOADER})
COMMAND ${CMAKE_COMMAND} -E copy
$<TARGET_SONAME_FILE:${LOVR_OPENXR}>
raw/lib/${ANDROID_ABI}/libopenxr_loader_generic.so
)
set(PICO_LOADER "${CMAKE_CURRENT_SOURCE_DIR}/deps/pico-openxr/libs/android.${ANDROID_ABI}/libopenxr_loader.so")
if(EXISTS ${PICO_LOADER})
configure_file(${PICO_LOADER} "raw/lib/${ANDROID_ABI}/libopenxr_loader_pico.so" COPYONLY)
endif()
set (OCULUS_LOADER "${CMAKE_CURRENT_SOURCE_DIR}/deps/oculus-openxr/Libs/Android/${ANDROID_ABI}/Release/libopenxr_loader.so")
if (EXISTS ${OCULUS_LOADER})
set(OCULUS_LOADER "${CMAKE_CURRENT_SOURCE_DIR}/deps/oculus-openxr/Libs/Android/${ANDROID_ABI}/Release/libopenxr_loader.so")
if(EXISTS ${OCULUS_LOADER})
configure_file(${OCULUS_LOADER} "raw/lib/${ANDROID_ABI}/libopenxr_loader_oculus.so" COPYONLY)
endif()

View File

@ -11,13 +11,10 @@ public class Activity extends NativeActivity {
if (Build.MANUFACTURER.contains("Oculus")) {
Log.d("LOVR", "Using Oculus OpenXR Loader");
System.loadLibrary("openxr_loader_oculus");
}
else if (Build.MANUFACTURER.contains("Pico"))
{
} else if (Build.MANUFACTURER.contains("Pico")) {
Log.d("LOVR", "Using Pico OpenXR Loader");
System.loadLibrary("openxr_loader_pico");
}
else {
} else {
Log.d("LOVR", "Using Generic OpenXR Loader");
System.loadLibrary("openxr_loader_generic");
}

View File

@ -10,16 +10,16 @@
<uses-permission android:name="com.oculus.permission.HAND_TRACKING"/>
<uses-permission android:name="com.oculus.permission.TRACKED_KEYBOARD"/>
<uses-permission android:name="com.oculus.permission.RENDER_MODEL"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<!-- Khronos/Generic -->
<uses-permission android:name="org.khronos.openxr.permission.OPENXR" />
<uses-permission android:name="org.khronos.openxr.permission.OPENXR_SYSTEM" />
<uses-permission android:name="org.khronos.openxr.permission.OPENXR"/>
<uses-permission android:name="org.khronos.openxr.permission.OPENXR_SYSTEM"/>
<queries>
<provider android:name="org.khronos.openxr.runtime_broker" android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker" />
<provider android:name="org.khronos.openxr.runtime_broker" android:authorities="org.khronos.openxr.runtime_broker;org.khronos.openxr.system_runtime_broker"/>
</queries>
<application android:allowBackup="false" android:label="LÖVR" android:extractNativeLibs="false" android:debuggable="true">
@ -33,7 +33,7 @@
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="com.oculus.intent.category.VR"/>
<category android:name="org.khronos.openxr.intent.category.IMMERSIVE_HMD" />
<category android:name="org.khronos.openxr.intent.category.IMMERSIVE_HMD"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

View File

@ -361,7 +361,7 @@ static bool openxr_init(HeadsetConfig* config) {
free(extensionProperties);
#ifdef __ANDROID__
XrInstanceCreateInfoAndroidKHR infoAndroid = {
XrInstanceCreateInfoAndroidKHR androidInfo = {
.type = XR_TYPE_INSTANCE_CREATE_INFO_ANDROID_KHR,
.applicationVM = os_get_java_vm(),
.applicationActivity = os_get_jni_context(),
@ -372,7 +372,7 @@ static bool openxr_init(HeadsetConfig* config) {
XrInstanceCreateInfo info = {
.type = XR_TYPE_INSTANCE_CREATE_INFO,
#ifdef __ANDROID__
.next = &infoAndroid,
.next = &androidInfo,
#endif
.applicationInfo.engineName = "LÖVR",
.applicationInfo.engineVersion = (LOVR_VERSION_MAJOR << 24) + (LOVR_VERSION_MINOR << 16) + LOVR_VERSION_PATCH,
@ -380,7 +380,7 @@ static bool openxr_init(HeadsetConfig* config) {
.applicationInfo.applicationVersion = 0,
.applicationInfo.apiVersion = XR_CURRENT_API_VERSION,
.enabledExtensionCount = enabledExtensionCount,
.enabledExtensionNames = enabledExtensionNames,
.enabledExtensionNames = enabledExtensionNames
};
XR_INIT(xrCreateInstance(&info, &state.instance));
@ -578,7 +578,7 @@ static bool openxr_init(HeadsetConfig* config) {
[PROFILE_WMR] = "/interaction_profiles/microsoft/motion_controller",
[PROFILE_TRACKER] = "/interaction_profiles/htc/vive_tracker_htcx",
[PROFILE_GAZE] = "/interaction_profiles/ext/eye_gaze_interaction",
[PROFILE_PICO] = "/interaction_profiles/pico/neo3_controller",
[PROFILE_PICO] = "/interaction_profiles/pico/neo3_controller"
};
typedef struct {
@ -828,7 +828,6 @@ static bool openxr_init(HeadsetConfig* config) {
bindings[PROFILE_GAZE][0].path = NULL;
}
int successProfiles = -1;
XrPath path;
XrActionSuggestedBinding suggestedBindings[64];
for (uint32_t i = 0, count = 0; i < MAX_PROFILES; i++, count = 0) {
@ -840,15 +839,17 @@ static bool openxr_init(HeadsetConfig* config) {
if (count > 0) {
XR_INIT(xrStringToPath(state.instance, interactionProfilePaths[i], &path));
int res = (xrSuggestInteractionProfileBindings(state.instance, &(XrInteractionProfileSuggestedBinding) {
XrResult result = (xrSuggestInteractionProfileBindings(state.instance, &(XrInteractionProfileSuggestedBinding) {
.type = XR_TYPE_INTERACTION_PROFILE_SUGGESTED_BINDING,
.interactionProfile = path,
.countSuggestedBindings = count,
.suggestedBindings = suggestedBindings
}));
if (XR_SUCCEEDED(res)) successProfiles++;
if (XR_FAILED(result)) {
lovrLog(LOG_WARN, "XR", "Failed to suggest input bindings for %s", interactionProfilePaths[i]);
}
}
XR_INIT(successProfiles);
}
}