NDK/C++ NativeActivity, arm64-v8a, Gradle 8.12 + AGP 8.7.3 + CMake 3.22.1. Implementacja (main.cpp): - EGL headless PBuffer context (wymagany przez OpenXR GLES binding) - xrCreateInstance z XR_FB_passthrough + XR_KHR_opengl_es_enable - xrCreateSession → XrGraphicsBindingOpenGLESAndroidKHR - XR_FB_passthrough: xrCreatePassthroughFB / xrCreatePassthroughLayerFB (dynamiczne PFN, graceful fallback gdy extension niedostępna) - Quad swapchain 512×256 — statyczny ciemnoniebieski panel 80×40 cm, 1 m przed użytkownikiem (przygotowany pod stb_truetype w fazie 5) - Pętla klatek: xrWaitFrame / xrBeginFrame / [passthrough + quad] / xrEndFrame - environmentBlendMode = OPAQUE (passthrough przez warstwę FB_passthrough) Brakujące pliki SDK (nie w git, lista w vr-poc/README.md): - libs/arm64-v8a/libopenxr_loader.so — z Meta OpenXR Mobile SDK - ovr_sdk/OpenXR/Include/openxr/*.h — nagłówki OpenXR Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
67 lines
1.4 KiB
Groovy
67 lines
1.4 KiB
Groovy
plugins {
|
|
id 'com.android.application'
|
|
}
|
|
|
|
android {
|
|
namespace 'com.ipin.vr.poc'
|
|
compileSdk 35
|
|
|
|
defaultConfig {
|
|
applicationId "com.ipin.vr.poc"
|
|
minSdk 29
|
|
targetSdk 32
|
|
versionCode 1
|
|
versionName "1.0.0-phase1"
|
|
|
|
ndk {
|
|
abiFilters "arm64-v8a"
|
|
}
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
cppFlags "-std=c++17 -O2 -fvisibility=hidden"
|
|
arguments "-DANDROID_STL=c++_shared",
|
|
"-DANDROID_ARM_NEON=TRUE"
|
|
}
|
|
}
|
|
}
|
|
|
|
ndkVersion "27.2.12479018"
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
path "CMakeLists.txt"
|
|
version "3.22.1"
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
debuggable true
|
|
jniDebuggable true
|
|
minifyEnabled false
|
|
}
|
|
release {
|
|
minifyEnabled false
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
// Prebuilt libopenxr_loader.so — user drops it in libs/arm64-v8a/
|
|
jniLibs.srcDirs += ['../libs']
|
|
}
|
|
}
|
|
|
|
// Keep .so symbols in debug builds for logcat crash symbolication
|
|
packagingOptions {
|
|
doNotStrip "**/*.so"
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_11
|
|
targetCompatibility JavaVersion.VERSION_11
|
|
}
|
|
}
|