X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Fstereoview.h;h=f9e9a560ea7eefc21b8f4081cf627267e4e601db;hp=4dce63b99870b96aa5c52cdb5296fcdba2311344;hb=0f239b07bc06bf26d0ee0f9c1ee1e3b636f6d1f6;hpb=cf1b08401da851dd98cde45d9e4acf6e1d185224 diff --git a/source/stereoview.h b/source/stereoview.h index 4dce63b..f9e9a56 100644 --- a/source/stereoview.h +++ b/source/stereoview.h @@ -1,26 +1,26 @@ -#ifndef MSP_GL_STEREOVIEW_H_ -#define MSP_GL_STEREOVIEW_H_ +#ifndef MSP_VR_STEREOVIEW_H_ +#define MSP_VR_STEREOVIEW_H_ #include -#include "camera.h" -#include "framebuffer.h" -#include "renderable.h" -#include "renderbuffer.h" -#include "texture2d.h" +#include +#include +#include +#include +#include namespace Msp { -namespace GL { +namespace VR { class StereoCombiner; -class StereoView: public Renderable +class StereoView { private: struct RenderTarget { - Framebuffer fbo; - Texture2D color; - Renderbuffer depth; + GL::Framebuffer fbo; + GL::Texture2D color; + GL::Renderbuffer depth; RenderTarget(unsigned, unsigned); }; @@ -35,40 +35,40 @@ private: struct Eye { - mutable Camera camera; + mutable GL::Camera camera; RenderTarget *target; Eye(); void create_target(unsigned, unsigned); - void setup_frame(const Camera &, const Vector3 &, const EyeParams &) const; - void render(const Renderable &, const Tag &) const; + void setup_frame(const GL::Camera &, const GL::Vector3 &, float, const EyeParams &) const; + void render(const GL::Renderable &) const; }; unsigned width; unsigned height; - const Camera &base_camera; - const Renderable &renderable; + const GL::Camera &base_camera; + const GL::Renderable &renderable; const StereoCombiner *combiner; Eye left; Eye right; float eye_spacing; - mutable Vector3 offset_axis; + Geometry::Angle strabismus; public: - StereoView(unsigned, unsigned, const Camera &, const Renderable &, const StereoCombiner &); + 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 &); - virtual void setup_frame() const; - virtual void finish_frame() const; - - virtual void render(const Tag & = Tag()) const; - virtual void render(Renderer &, const Tag & = Tag()) const; +private: + void setup_frame() const; +public: + void render() const; }; -} // namespace GL +} // namespace VR } // namespace Msp #endif