a1ee0db0b0a3483b531a1ee44010fb5a0f70bc96
[libs/vr.git] / source / openvr / openvrdevice.h
1 #ifndef MSP_VR_OPENVRDEVICE_H_
2 #define MSP_VR_OPENVRDEVICE_H_
3
4 #include <msp/gl/matrix.h>
5 #include <msp/vr/displaydevice.h>
6 #include "openvrcamera.h"
7 #include "openvrcombiner.h"
8
9 namespace Msp {
10 namespace VR {
11
12 class OpenVRDevice: public DisplayDevice
13 {
14 private:
15         GL::Matrix hmd_matrix;
16
17         static unsigned n_instances;
18
19 public:
20         OpenVRDevice();
21         ~OpenVRDevice();
22
23         virtual void configure_window(Graphics::Window &) const { }
24         virtual void configure_view(StereoView &) const { }
25         virtual OpenVRCamera *create_camera(const GL::Camera &);
26         virtual OpenVRCombiner *create_combiner(GL::View &);
27
28         void update_pose_matrices();
29         const GL::Matrix &get_hmd_matrix() const { return hmd_matrix; }
30 };
31
32 } // namespace VR
33 } // namespace Msp
34
35 #endif