Prefer OpenXR for desktop XR policy
This commit is contained in:
@@ -44,7 +44,8 @@ dependencies until each platform triplet is proven.
|
||||
| SQLite | `libs/sqlite3` | Move to vcpkg |
|
||||
| GLAD | `libs/glad` | Move to vcpkg or generated backend target |
|
||||
| Catch2 | none yet | Add through vcpkg |
|
||||
| OpenVR | `libs/openvr` | Retain initially |
|
||||
| OpenXR | Not wired yet | Target desktop XR backend; add SDK/package behind `pp_platform_vr` |
|
||||
| OpenVR | `libs/openvr` | Retain only as a temporary desktop compatibility fallback; remove under `DEBT-0061` |
|
||||
| OVR Platform/Mobile | `libs/ovr_platform`, `libs/ovr_mobile` | Retain initially |
|
||||
| Wave SDK | `libs/wave_sdk` | Retain initially |
|
||||
| Wacom WinTab | `libs/wacom` | Retain initially |
|
||||
@@ -323,8 +324,10 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
|
||||
the `pp_app_core` `AppPreferenceServices` contract while retained settings
|
||||
persistence, recording lifecycle, and legacy canvas/UI execution remain
|
||||
tracked by `DEBT-0045`; the VR mode callbacks now call `App` wrappers that
|
||||
dispatch through `PlatformServices` before reaching the retained platform VR
|
||||
bridge.
|
||||
dispatch through `PlatformServices` before reaching the selected platform XR
|
||||
runtime. `pp_platform_api` now prefers OpenXR in its tested desktop runtime
|
||||
selection policy and marks the retained Windows OpenVR SDK path as a legacy
|
||||
fallback under `DEBT-0061`.
|
||||
- `src/legacy_app_startup_services.*` is the current app-shell bridge for
|
||||
startup preference/runtime execution. It keeps run-counter persistence,
|
||||
startup preference save, auto-timelapse startup, stored VR-controller state,
|
||||
@@ -623,9 +626,10 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
|
||||
context.
|
||||
Desktop VR drawing also consumes backend-owned scissor/depth/blend state,
|
||||
blend/depth state query-restore, depth clear masks, active texture unit
|
||||
dispatch, and fallback 2D texture unbind dispatch; VR SDK start/stop now dispatches
|
||||
through `PlatformServices` while retaining the existing Windows OpenVR bridge
|
||||
shape. Its retained callback endpoints now share `legacy_ui_gl_dispatch`
|
||||
dispatch, and fallback 2D texture unbind dispatch; XR SDK start/stop now
|
||||
dispatches through `PlatformServices` and the tested desktop runtime policy
|
||||
prefers OpenXR before falling back to the existing Windows OpenVR bridge. Its
|
||||
retained callback endpoints now share `legacy_ui_gl_dispatch`
|
||||
with app startup, app clear, app UI viewport/scissor, and command-convert
|
||||
renderer state callbacks, so those files no longer duplicate local raw GL
|
||||
adapter clusters for capability, blend, clear, viewport, scissor, active
|
||||
|
||||
@@ -70,7 +70,7 @@ and validation command.
|
||||
| Wacom pressure | `WacomTablet` | `pp_platform_windows` | Adapter smoke with fallback |
|
||||
| Clipboard/file picker/share/display | `App` platform methods | `pp_app_core`, `pp_platform_api`, `pp_platform_*` | Clipboard read/write, share saved-path, picked-path, and display-file decision tests, platform service display/share/picker dispatch tests, platform smoke or mocked service |
|
||||
| Virtual keyboard | `App`, platform entrypoints | `pp_app_core`, `pp_platform_api`, `pp_platform_*` | Keyboard visibility decision tests, platform service dispatch tests, platform smoke |
|
||||
| OpenVR desktop | `HMD`, `Vive`, `app_vr` | `pp_platform_vr`, app | Compile gate and mocked pose tests |
|
||||
| Desktop XR | `HMD`, `Vive`, `app_vr`, retained OpenVR bridge | `pp_platform_vr`, app with OpenXR backend | Runtime-selection policy tests, compile gate, and mocked pose tests |
|
||||
| Quest/OVR | Android Quest files | `pp_platform_android_quest` | Compile/package gate |
|
||||
| Focus/Wave | Android Focus files | `pp_platform_android_wave` | Compile/package gate |
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -336,7 +336,8 @@ Implementation tasks:
|
||||
- `glad`
|
||||
- `Catch2`
|
||||
- Keep vendored until proven:
|
||||
- OpenVR
|
||||
- OpenVR only as the temporary desktop compatibility fallback while OpenXR is
|
||||
introduced behind `pp_platform_vr`
|
||||
- OVR/Wave SDKs
|
||||
- Wacom WinTab
|
||||
- AppCenter
|
||||
@@ -735,9 +736,11 @@ VR mode, VR-controller, auto-timelapse, and cursor-mode side effects through
|
||||
retained settings writes, recording lifecycle calls, and legacy canvas/UI
|
||||
adapters continue.
|
||||
VR mode start/stop now enters `App` platform wrappers that dispatch through
|
||||
`PlatformServices`; Windows keeps the retained OpenVR bridge in
|
||||
`WindowsPlatformServices`, while the legacy fallback reports unsupported VR
|
||||
startup on non-Windows platforms until their shells own the service.
|
||||
`PlatformServices`; the desktop runtime-selection policy in `pp_platform_api`
|
||||
prefers OpenXR and marks OpenVR as a legacy fallback. Windows still reaches the
|
||||
retained OpenVR bridge in `WindowsPlatformServices` until the OpenXR backend is
|
||||
wired, while the legacy fallback reports unsupported VR startup on non-Windows
|
||||
platforms until their shells own the service.
|
||||
`pano_cli plan-about-menu` exposes app-core planning for About menu help,
|
||||
about, what's-new, crash-test, and performance-test commands, including
|
||||
versioned what's-new labels, diagnostic gating, and no-canvas performance-test
|
||||
@@ -823,8 +826,9 @@ available and dispatches startup through the same service, preserving the
|
||||
current iOS Objective-C bridge in the legacy adapter while removing iOS branches
|
||||
from `App::init_menu_tools` and `LegacyToolsMenuServices`.
|
||||
App VR lifecycle start/stop now asks `PlatformServices`, preserving the current
|
||||
Windows OpenVR startup/shutdown bridge in `WindowsPlatformServices` while
|
||||
non-Windows fallback adapters keep the existing unsupported/no-op behavior.
|
||||
Windows OpenVR startup/shutdown bridge as the selected legacy fallback in
|
||||
`WindowsPlatformServices` while non-Windows fallback adapters keep the existing
|
||||
unsupported/no-op behavior.
|
||||
Canvas image export publishing and explicit persistent-storage flushes now
|
||||
dispatch through `PlatformServices` too, preserving iOS photo-library export
|
||||
publication and WebGL filesystem sync behavior in the legacy adapter while
|
||||
@@ -903,8 +907,8 @@ the live OpenGL call sequence. The retained viewport/scissor callback endpoints
|
||||
now share `legacy_ui_gl_dispatch`.
|
||||
VR UI framebuffer viewport and scissor-test setup now also consumes those
|
||||
`pp_renderer_gl` contracts, keeping desktop and VR UI rendering aligned while
|
||||
the retained OpenVR app path is split incrementally; its retained callback
|
||||
endpoints now reuse the shared UI GL bridge.
|
||||
the desktop XR path moves from the retained OpenVR app path toward OpenXR; its
|
||||
retained callback endpoints now reuse the shared UI GL bridge.
|
||||
VR draw blend/depth state snapshots, transitions, restore, and depth-buffer
|
||||
clears, active texture unit switches, and fallback 2D texture unbinds now use
|
||||
generic tested `pp_renderer_gl` capability query/apply, clear, active-texture,
|
||||
@@ -2699,7 +2703,8 @@ Use this as the starting checklist for Phase 0 inventory.
|
||||
VR controllers.
|
||||
- Platform services: clipboard, file picker, save picker, directory picker,
|
||||
share/display file, keyboard show/hide, cursor visibility.
|
||||
- VR/platform variants: OpenVR desktop, Quest, Focus/Wave, Android standard,
|
||||
- VR/platform variants: OpenXR desktop target with retained OpenVR fallback,
|
||||
Quest, Focus/Wave, Android standard,
|
||||
iOS/macOS, Linux, WebGL.
|
||||
- Cloud/network: upload, download, browse, license/check flows.
|
||||
- Recording/export: PBO readbacks, MP4 encoder, timelapse frames.
|
||||
|
||||
Reference in New Issue
Block a user