Closed rasmusgo closed 4 months ago
https://www.khronos.org/registry/OpenXR/specs/1.0/html/xrspec.html
should be updated to 1.1.is there any ETA on this getting merged?
It needs a rebase first, for one thing.
Rebased now. The most glaring problem is that the instance cannot be created if OpenXR 1.1 isn't supported by the loader, as we try to use the current API version when creating the instance: https://github.com/Ralith/openxrs/blob/4681a25c910da1f078342935b60b4fabe3cc4747/openxr/src/entry.rs#L239
Would it make sense to take a version argument, deferring that problem to the application? That'd help us gracefully handle movement of extensions that we provide high-level wrappers for into core, too.
This runs with api version 1.0 now. I'm not sure what, if anything, is missing from the 1.1 spec. The only thing that disappeared when restricting the core commands to 1.0 was xrLocateSpaces
from the high level bindings.
This PR builds upon #157.
The biggest change in the generator is that
<feature>
tags are processed now. They are similar to<extension>
but have a couple of important differences.<interaction_profiles>
were added in OpenXR 1.0.27 but we are still not using them. OpenXR 1.1.36 keeps building upon them with<extend>
and<interaction_profile>
tags inside<require>
tags. I think we should consider adding support for them in another PR.I used https://registry.khronos.org/OpenXR/specs/1.1/styleguide.html#schema and https://registry.khronos.org/vulkan/specs/1.3/registry.html to figure out the schema.