0610e29e80db7714d8b7fe31c33290546e1141ab
[libs/vr.git] / source / system.h
1 #ifndef MSP_VR_SYSTEM_H_
2 #define MSP_VR_SYSTEM_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 System
16 {
17 protected:
18         System() { }
19 public:
20         virtual ~System() { }
21
22         static System *create(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