]> git.tdb.fi Git - libs/vr.git/blob - source/displaydevice.h
46dfbaeb8dacca32c998f70f7d74c1d62f1d650e
[libs/vr.git] / source / displaydevice.h
1 #ifndef MSP_VR_DISPLAYDEVICE_H_
2 #define MSP_VR_DISPLAYDEVICE_H_
3
4 #include <string>
5 #include <msp/gl/camera.h>
6 #include <msp/gl/view.h>
7
8 namespace Msp {
9 namespace VR {
10
11 class HeadTrackingCamera;
12 class StereoCombiner;
13 class StereoView;
14
15 class DisplayDevice
16 {
17 protected:
18         DisplayDevice() { }
19 public:
20         virtual ~DisplayDevice() { }
21
22         static DisplayDevice *create_device(const std::string &);
23
24         virtual void configure_window(Graphics::Window &) const = 0;
25         virtual void configure_view(StereoView &) const = 0;
26         virtual HeadTrackingCamera *create_camera(const GL::Camera &) = 0;
27         virtual StereoCombiner *create_combiner(GL::View &) = 0;
28 };
29
30 } // namespace VR
31 } // namespace Msp
32
33 #endif