Hotrian / OpenVRDesktopDisplayPortal

Put your favorite Desktop Window directly into any OpenVR game!
Other
447 stars 97 forks source link

Add support for other Capture methods #8

Closed Hotrian closed 7 years ago

Hotrian commented 7 years ago

I know there are a number of different ways to capture the screen and other applications, and I'll be looking into implementing them when I can. If anyone else wants to take a crack at it, feel free to fork the repo and test them out :).

Hotrian commented 7 years ago

The Unity team released a special 5.5 beta that adds support for .Net 4.6 :)! Unfortunately, the beta they released still doesn't allow managed plugins above .Net 3.5 :(. I have high hopes a near future version of Unity will allow managed plugins for .Net 4.6, which in turn would give us access to a better API :). I ran some tests with a better API, and while I can't benchmark the Unity side of things, the API itself can capture my 2560x1440 monitor at 150FPS which gives me high hopes for OVRDDP's future :).

I tried writing a companion app which could run along side OVRDDP and send it the image data from the API, but unfortunately it ran short, and I was only able to get around 15FPS at 2560x1440. Still far better than the GDI API, but not well enough for me to implement it into OVRDDP.

Edit: API name redacted ;]

Hotrian commented 7 years ago

This is finally coming :).

Finally found a working example of said API with Unity.

The new API has all the special effects lost by GDI Indirect, and even shows things GDI Direct misses, such as Right Click menus in Windows Explorer. Easily captures my full monitor (2560x1440) - it can even capture as many as 500FPS, though it typically runs at 75FPS because said API only takes a new screenshot of the display when something changes.

Still some bugs to work out, and things to fix for OVRDDP, but this is coming along very nicely now :).

Edit: API name redacted ;]

Hotrian commented 7 years ago

This is now in OVRdrop, which is the closed source Steam Release of OVRDDP. Since I will continue to incorporate feature requests from OVRDDP into OVRdrop, I am closing this issue now.

If you are interested, you can find OVRdrop on Steam here.