]> git.tdb.fi Git - libs/vr.git/blobdiff - source/stereoview.h
Make offset_axis a local variable of StereoView::setup_frame
[libs/vr.git] / source / stereoview.h
index fe3d6d6b82f57de8a920ea01c326ccde6c817748..f9e9a560ea7eefc21b8f4081cf627267e4e601db 100644 (file)
@@ -13,7 +13,7 @@ namespace VR {
 
 class StereoCombiner;
 
-class StereoView: public GL::Renderable
+class StereoView
 {
 private:
        struct RenderTarget
@@ -41,8 +41,8 @@ private:
                Eye();
 
                void create_target(unsigned, unsigned);
-               void setup_frame(const GL::Camera &, const GL::Vector3 &, const EyeParams &) const;
-               void render(const GL::Renderable &, const GL::Tag &) const;
+               void setup_frame(const GL::Camera &, const GL::Vector3 &, float, const EyeParams &) const;
+               void render(const GL::Renderable &) const;
        };
 
        unsigned width;
@@ -53,19 +53,19 @@ private:
        Eye left;
        Eye right;
        float eye_spacing;
-       mutable GL::Vector3 offset_axis;
+       Geometry::Angle<float> strabismus;
 
 public:
        StereoView(unsigned, unsigned, const GL::Camera &, const GL::Renderable &, const StereoCombiner &);
 
        void set_combiner(const StereoCombiner &);
        void set_eye_spacing(float);
+       void set_strabismus(const Geometry::Angle<float> &);
 
-       virtual void setup_frame() const;
-       virtual void finish_frame() const;
-
-       virtual void render(const GL::Tag & = GL::Tag()) const;
-       virtual void render(GL::Renderer &, const GL::Tag & = GL::Tag()) const;
+private:
+       void setup_frame() const;
+public:
+       void render() const;
 };
 
 } // namespace VR