1 #ifndef MSP_GL_STEREOVIEW_H_
2 #define MSP_GL_STEREOVIEW_H_
4 #include <msp/geometry/angle.h>
6 #include "framebuffer.h"
7 #include "renderable.h"
8 #include "renderbuffer.h"
16 class StereoView: public Renderable
25 RenderTarget(unsigned, unsigned);
30 Geometry::Angle<float> fov;
38 mutable Camera camera;
43 void create_target(unsigned, unsigned);
44 void setup_frame(const Camera &, const Vector3 &, const EyeParams &) const;
45 void render(const Renderable &, const Tag &) const;
50 const Camera &base_camera;
51 const Renderable &renderable;
52 const StereoCombiner *combiner;
56 mutable Vector3 offset_axis;
59 StereoView(unsigned, unsigned, const Camera &, const Renderable &, const StereoCombiner &);
61 void set_combiner(const StereoCombiner &);
62 void set_eye_spacing(float);
64 virtual void setup_frame() const;
65 virtual void finish_frame() const;
67 virtual void render(const Tag & = Tag()) const;
68 virtual void render(Renderer &, const Tag & = Tag()) const;