Overhaul the VR menu UI: header, tabs, live video options, hover/click feedback, i18n, and dragging
build / build (push) Successful in 2m25s
build / build (push) Successful in 2m25s
- Header with title, git-tag-derived version, and a live FPS/frame-time/ CPU/GPU-utilization/free-memory stats ribbon below the tab bar (FPS via a new per-frame tracker in xr_session.c; CPU/GPU via the OpenXR XR_META_performance_metrics extension, gracefully unavailable on runtimes that don't support it) - Bottom tab bar with a live-editable Video Options tab (renderer/ resolution), applying changes immediately via qs_config.c - Hover and press feedback on every menu/keyboard button via a StateListDrawable (Android's default ripple never animates on this permanently unattached view tree), with a lighter default button color for visibility - i18n for all menu/keyboard chrome text, following the game's own language setting (Strings.java) - The main menu is now draggable via its header, matching the keyboard; xr_input.c's drag handling is generalized to per-overlay state instead of being keyboard-only - The keyboard's title bar now matches the menu header's style
This commit is contained in:
@@ -29,9 +29,33 @@ if (prebuiltDir == null) {
|
||||
}
|
||||
|
||||
// Set by build-apk.sh (see build-image/version.sh, shared with the
|
||||
// desktop tarball's versioning) via -PquestshockVersionName/Code. Default
|
||||
// here only covers a direct, unsupported `gradlew` invocation.
|
||||
def questshockVersionName = project.hasProperty('questshockVersionName') ? project.property('questshockVersionName') : '0.0.0-dev'
|
||||
// desktop tarball's versioning) via -PquestshockVersionName/Code. Building
|
||||
// directly from Android Studio (the normal day-to-day workflow - see
|
||||
// README) never passes that property, so the default below has to carry
|
||||
// its own weight rather than just being a fallback for some rare, other,
|
||||
// unsupported path: it runs `git describe` itself, the same way
|
||||
// engine/CMakeLists.txt's own PROJECT_REVERSION_STRING does for the
|
||||
// engine's *own* separate version string - "vX.Y.Z" on a clean tagged
|
||||
// commit, or "vX.Y.Z-N-gHASH[-dirty]" otherwise, so a build between
|
||||
// releases is still identifiable from the in-headset menu (see
|
||||
// MenuOverlay.java's header, which reads BuildConfig.VERSION_NAME).
|
||||
def gitDescribeVersionName = {
|
||||
try {
|
||||
def proc = ["git", "-C", projectDir.toString(), "describe", "--tags", "--always", "--dirty"].execute()
|
||||
proc.waitFor()
|
||||
if (proc.exitValue() == 0) {
|
||||
def out = proc.text.trim()
|
||||
if (out) {
|
||||
return out
|
||||
}
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
// git not on PATH, or this isn't a git checkout at all (e.g. a
|
||||
// source tarball) - fall through to the placeholder below.
|
||||
}
|
||||
return "0.0.0-dev"
|
||||
}
|
||||
def questshockVersionName = project.hasProperty('questshockVersionName') ? project.property('questshockVersionName') : gitDescribeVersionName()
|
||||
def questshockVersionCode = project.hasProperty('questshockVersionCode') ? project.property('questshockVersionCode').toInteger() : 1
|
||||
|
||||
// Auto-refreshes the staged, patched engine/ and gl4es-src/ copies and
|
||||
@@ -189,6 +213,13 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
// Generates BuildConfig (specifically BuildConfig.VERSION_NAME, read by
|
||||
// MenuOverlay.java's header) - off by default since AGP 8.0, so this
|
||||
// has to be requested explicitly.
|
||||
buildFeatures {
|
||||
buildConfig true
|
||||
}
|
||||
|
||||
lint {
|
||||
abortOnError false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user