Implement XR_MSFT_controller_model
This extension is now part of the core OpenXR spec, and covers one of the features that OpenXR is still lacking when compared to OpenVR.
It seems rather simple to implement, so I've started to work on adding the required entrypoints. I've implemented xrGetControllerModelKeyMSFT
using get_subaction_path_from_path
from oxr_bindings.c
(to detect which hand the path corresponds to) and GET_XDEV_BY_ROLE()
(to obtain the corresponding struct xrt_device
). Then by switching on the xdevice->name
enum, I assign a unique value for XrControllerModelKeyMSFT
.
The next step would be to implement xrLoadControllerModelMSFT
, which has to switch on the modelKey
assigned earlier, and then essentially load a file and use OXR_TWO_CALL_HELPER()
to output it. Here I'm not sure how to proceed - as far as I can tell, there is no precedent in Monado for shipping and loading this kind of binary asset. I'm also not sure about potential licensing issues with the models.
This is my first time contributing to Monado, so I'd be happy to hear any advice or recommendations.