--- /dev/null
+#ifndef MSP_VR_OPENVRDEVICE_H_
+#define MSP_VR_OPENVRDEVICE_H_
+
+#include <msp/gl/matrix.h>
+#include <msp/vr/displaydevice.h>
+#include "openvrcamera.h"
+#include "openvrcombiner.h"
+
+namespace Msp {
+namespace VR {
+
+class OpenVRDevice: public DisplayDevice
+{
+private:
+ GL::Matrix hmd_matrix;
+
+ static unsigned n_instances;
+
+public:
+ OpenVRDevice();
+ ~OpenVRDevice();
+
+ virtual void configure_window(Graphics::Window &) const { }
+ virtual void configure_view(StereoView &) const { }
+ virtual OpenVRCamera *create_camera(const GL::Camera &);
+ virtual OpenVRCombiner *create_combiner(GL::View &);
+
+ void update_pose_matrices();
+ const GL::Matrix &get_hmd_matrix() const { return hmd_matrix; }
+};
+
+} // namespace VR
+} // namespace Msp
+
+#endif