-#ifndef MSP_GL_STEREOCOMBINER_H_
-#define MSP_GL_STEREOCOMBINER_H_
+#ifndef MSP_VR_STEREOCOMBINER_H_
+#define MSP_VR_STEREOCOMBINER_H_
-namespace Msp {
-namespace GL {
+#include <msp/geometry/angle.h>
+#include <msp/gl/texture2d.h>
-class Texture2D;
+namespace Msp {
+namespace VR {
class StereoCombiner
{
unsigned width_div;
unsigned height_div;
bool keep_aspect;
- float fov;
+ Geometry::Angle<float> fov;
+ float oversize;
+ float frustum_skew;
StereoCombiner();
public:
unsigned get_width_divisor() const { return width_div; }
unsigned get_height_divisor() const { return height_div; }
bool is_aspect_kept() const { return keep_aspect; }
- float get_field_of_view() const { return fov; }
+ const Geometry::Angle<float> &get_field_of_view() const { return fov; }
+ float get_oversize() const { return oversize; }
+ float get_frustum_skew() const { return frustum_skew; }
- virtual void render(const Texture2D &, const Texture2D &) const = 0;
+ virtual void render(const GL::Texture2D &, const GL::Texture2D &) const = 0;
};
-} // namespace GL
+} // namespace VR
} // namespace Msp
#endif