I’m wondering if it’s possible in principle to build an application that behaves like a runtime, inserting itself between the active runtime and subsequent application launches?
This would be an application that connects to an active OpenXR runtime on the system using the standard runtime discovery process, and then proceeds to launch other OpenXR applications while overriding runtime discovery to point to itself, intercepting calls and passing them through to the underlying runtime as necessary.
The OpenXR 1.0 spec mentions something similar under API Layers
But it also mentions that only one runtime can be active at any given time
The idea here is to build an application that provides shell functionality - an opinionated user interface layer for managing multiple applications, composition, focus and input routing. Is it possible to build this kind of OpenXR compatible shell without having to build an entirely new runtime from scratch?