-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow unbundling OpenXR (for Linux distros) #73443
Conversation
Hm. We only appear to be using Looking at the source for Both |
Actually, much of the math here is the same as |
f9a3818
to
ec7dcd4
Compare
I had a quick go at copying the relevant code to our I think it would be best to port the code to rely on our own (If one of you in the XR team want to work on it, feel free to amend my PR directly.) |
@akien-mga we may need to add it to our |
ec7dcd4
to
5f5cb53
Compare
5f5cb53
to
55bf1ff
Compare
Rebased the current approach.
I think this would be ideal, but until it's done, I think we can go ahead with the approach I took bundling the relevant third-party code in our utils class. |
Copy XrMatrix4x4f_CreateProjectionFov to our OpenXRUtil, instead of relying on a private header.
55bf1ff
to
34a07b8
Compare
Thanks! |
Cherry-picked for 4.1.2. |
Linux distros typically like to link dynamically against system libraries when packaging software, which applies to Godot packages too.
Like we do for other libraries which are usually available as system library, we add a
builtin_openxr
option which can be turned off to link to system libraries on Linux. Note that the system is a bit brittle, if someone tries to turn off this option on other platforms they'll likely get a build error - but the same applies to all otherbuiltin_*
options we have currently, one day I'll clean up all this.I have an issue preventing me from finalizing this, which is that we actually use
XrMatrix4x4f
which is not part of the public API of OpenXR, but included in one of the private source headers. So to be able to building against system headers, we'd need to either use a different, public API, or copy the relevant bits of code (maybe port them to Godot'sProjection
matrix?).