1 #ifndef MSP_VR_STEREOVIEW_H_
2 #define MSP_VR_STEREOVIEW_H_
4 #include <msp/geometry/angle.h>
5 #include <msp/gl/camera.h>
6 #include <msp/gl/framebuffer.h>
7 #include <msp/gl/renderable.h>
8 #include <msp/gl/renderbuffer.h>
9 #include <msp/gl/texture2d.h>
23 GL::Renderbuffer depth;
25 RenderTarget(unsigned, unsigned);
30 Geometry::Angle<float> fov;
38 mutable GL::Camera camera;
43 void create_target(unsigned, unsigned);
44 void setup_frame(const GL::Camera &, const GL::Vector3 &, float, const EyeParams &) const;
45 void render(const GL::Renderable &) const;
50 const GL::Camera &base_camera;
51 const GL::Renderable &renderable;
52 const StereoCombiner *combiner;
56 Geometry::Angle<float> strabismus;
57 mutable GL::Vector3 offset_axis;
60 StereoView(unsigned, unsigned, const GL::Camera &, const GL::Renderable &, const StereoCombiner &);
62 void set_combiner(const StereoCombiner &);
63 void set_eye_spacing(float);
64 void set_strabismus(const Geometry::Angle<float> &);
67 void setup_frame() const;