1 #ifndef MSP_VR_STEREOCOMBINER_H_
2 #define MSP_VR_STEREOCOMBINER_H_
4 #include <msp/geometry/angle.h>
5 #include <msp/gl/texture2d.h>
21 Frustum(float, float, float, float);
24 unsigned target_width;
25 unsigned target_height;
27 Geometry::Angle<float> fov;
32 virtual ~StereoCombiner() { }
35 void configure_eye_frustums(const Frustum &, const Frustum &);
37 float get_target_width() const { return target_width; }
38 float get_target_height() const { return target_height; }
39 float get_render_aspect() const { return render_aspect; }
40 const Geometry::Angle<float> &get_field_of_view() const { return fov; }
41 float get_frustum_skew() const { return frustum_skew; }
43 virtual void prepare() const { }
44 virtual void render(const GL::Texture2D &, const GL::Texture2D &) const = 0;