sencercoltu / openvr-customhmd

Generic OpenVR Driver, STM32 based HeadTracker and wireless motion controller firmware.
57 stars 15 forks source link

How to implement IVRDriverDirectModeComponent #9

Open yth223 opened 5 years ago

yth223 commented 5 years ago

Currently we are working on creating our own HMD. This HMD has two display (for Left and Right eye) and it's needs to rotate (portrait to landscape). So I'm trying to implement IVRDriverDirectModeComponent. nVidia's direct mode will be supported in the future, but now I want to display it on a display managed by the OS.

Stariting with a sample driver, I added IVRDriverDirectModeComponent(now empty functions only). And set parameters below Prop_HasDriverDirectModeComponent_Bool, true IsDisplayOnDesktop() false IsDisplayRealDisplay() false And in GetComponent(), return IVRDriverDirectModeComponent instance.

Then Stem VR does not start and displays error code (457). Functions in IVRDriverDirectModeComponent is called only DestroyAllSwapTextureSets().

So I want to ask the following questions. 1.I think my class is necessasy to implemented the interface ITrackedDeviceServerDriver, IVRDisplayComponent, IVRDriverDirectModeComponent. Is it right? 2.I want to proceed with the implementation while checking that an empty function is called. What do I need to start Steam at a minimum?

I am also reffering to this page https://github.com/sencercoltu/openvr-customhmd but I seem to have failed in a more basic place.

Best Regards.