Driver Documentation

Joe van den Heuvel edited this page Jun 22, 2018 · 11 revisions

Let's say you want to write a new OpenVR driver called "mydriver". To do that you will need to following the steps below.

  1. Put all the files for your driver under a directory. Let's say that directory is "/mydriver"
  2. Add a new DLL to "mydriver/bin/win64/driver_mydriver.dll" (For Linux and OSX use the appropriate platform directory and the appropriate shared library extension.)
  3. Implement the driver factory function in that DLL.
  4. Add an implementation of vr::IClientTrackedDeviceProvider to the DLL and return it from the factory. This provider will be phased out in the next SDK udpate, but for now you need it.
  5. Add an implementation of vr::IServerTrackedDeviceProvider and have that return implementations of vr::ITrackedDeviceServerDriver for each tracked device.
  6. Add a driver manifest file to "/mydriver"
  7. Run: vrpathreg adddriver "/mydriver"

For devices with buttons, triggers, joysticks, and other kinds of input controls, please refer to the vr::IVRDriverInput API.

For devices that wish to provide animation data through the Skeletal Input system, please refer to the Skeletal Input Driver documentation.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.