Skip to content

Version 1.2.0

Latest
Compare
Choose a tag to compare
@tjhorner tjhorner released this 11 Jul 22:49
· 2 commits to master since this release

This release adds a new API for interfacing with lower-level graphics APIs from IVRCompositor. For now, the only method available is grabbing a screenshot of the headset view (GetMirrorImage), but as the project grows there will be more added.

There are also two new packages: OVRSharp.Graphics.DirectX and OVRSharp.Graphics.OpenGL. These packages implement the new API with their respective underlying graphics APIs. For now, only the DirectX package is published on NuGet because there seems to be an issue on the OpenVR side preventing it from working. Here's some example usage:

var compositor = DirectXCompositor.Instance;
var screenshot = compositor.GetMirrorImage();

Do note that this method is actually pretty slow (~15ms) due to all the copying and transforming happening under-the-hood, so it's not suitable for constant mirror image access. For that, you may want to look into lower-level ways of accessing the underlying DirectX/OpenGL resources (or help out with #11!)

Lastly, this API (ICompositorAPI) is also interface-based, so anyone can write their own implementation (e.g. one that works with Vulkan somehow) and publish it if they wish.


Unrelated to the public API, I've also started writing integration tests (starting with ICompositorAPI) that test correctness against an actual OpenVR runtime.