Igalia / wolvic

A fast and secure browser for standalone virtual-reality and augmented-reality headsets.
https://wolvic.org
Mozilla Public License 2.0
813 stars 105 forks source link

[OpenXR] Add support for XR_FB_keyboard_tracking and XR_FB_render_model #1348

Closed elima closed 7 months ago

elima commented 7 months ago

https://registry.khronos.org/OpenXR/specs/1.0/html/xrspec.html#XR_FB_keyboard_tracking

This series implements both XR_FB_keyboard_tracking and XR_FB_render_model.

A new class TrackedKeyboardRenderer is added to draw the keyboard, but it is only boilerplate for the moment, pending to add a new library that can handle KTX2 textures, and a new glTF loader that allows loading the textures externally.

This class follows the same logic as HandMeshRenderer: data is updated on every world tick by calling into OpenXR backend, and the result is drawn on every frame via TrackedKeyboardRenderer::Draw().

elima commented 7 months ago

I'd just remove the last commit from this series. I think we better add the new class once it's ready instead of adding the boilerplate first. Apart from that I just have very minor nits.

I have pushed a new version that removes the last commit, and addresses all nits but one, for which I left a comment.

Thanks for the review!

svillar commented 7 months ago

Awesome, mind squashing the fixes in the original commits? I think they all make sense by themselves and it's better to land them separately instead of a big chunk.

elima commented 7 months ago

Awesome, mind squashing the fixes in the original commits? I think they all make sense by themselves and it's better to land them separately instead of a big chunk.

Done, thanks!