f078df773592531fe9b8ad79b3aa74d6321b5bc2
[libs/vr.git] / source / stereocombiner.h
1 #ifndef MSP_VR_STEREOCOMBINER_H_
2 #define MSP_VR_STEREOCOMBINER_H_
3
4 #include <msp/geometry/angle.h>
5 #include <msp/gl/texture2d.h>
6
7 namespace Msp {
8 namespace VR {
9
10 class StereoCombiner
11 {
12 protected:
13         unsigned width_div;
14         unsigned height_div;
15         bool keep_aspect;
16         Geometry::Angle<float> fov;
17         float oversize;
18
19         StereoCombiner();
20 public:
21         virtual ~StereoCombiner() { }
22
23         unsigned get_width_divisor() const { return width_div; }
24         unsigned get_height_divisor() const { return height_div; }
25         bool is_aspect_kept() const { return keep_aspect; }
26         const Geometry::Angle<float> &get_field_of_view() const { return fov; }
27         float get_oversize() const { return oversize; }
28
29         virtual void render(const GL::Texture2D &, const GL::Texture2D &) const = 0;
30 };
31
32 } // namespace VR
33 } // namespace Msp
34
35 #endif