Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request resolves issues #14, #11, and replaces/incorporates pull request #12 (extending it by using the getinterfaceversions() call and checking the versions to ensure we're performing valid casts that won't cause crashes).
The OpenVR submodule is updated to 1.0.1, with the accompanying API changes - interface version strings were pulled from the signature of some methods. Instead, it's now essentially required for the host to verify that GetInterfaceVersions returns expected version strings to ensure the casts performed following the interface retrievals are in fact typesafe - if these checks are not done, memory corruption can result. The standalone apps as well as the OSVR plugin now all perform a check of the interface version strings and print some form of useful message if there is a meaningful mismatch.
A few smaller changes are in here, too: license updates for the property-related headers (to match OpenVR license), struct-based return values where there's a return value and an error code, signalling permanent failures from within a level of the plugin that couldn't before, avoiding unnecessary plugin work if you're running an incompatible version.
Compatibility:
SteamVR Version 2016-06-08 (1465424737)
IClientTrackedDeviceProvider_004
, which is not publicly available through the OpenVR repo.IVRDisplayComponent_001
toIVRDisplayComponent_002
(in splitting out the oculus/controlled direct mode component), but likely would if the OpenVR submodule was rolled back to a previous version.