Skip to content

Driver Documentation

Joe Ludwig edited this page Jan 9, 2018 · 21 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.

Clone this wiki locally