X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Fstereocombiner.h;h=bef0849b39ee4a460d8c8c838957286f70dc4fa9;hp=8a351eaeb5d6f594b78733822c5731d04b14c059;hb=ca9e343224762bd43c91af1b15ecba12ebf3e991;hpb=cb460150f6870c172a70237f283c9753250be361 diff --git a/source/stereocombiner.h b/source/stereocombiner.h index 8a351ea..bef0849 100644 --- a/source/stereocombiner.h +++ b/source/stereocombiner.h @@ -10,6 +10,17 @@ namespace VR { class StereoCombiner { protected: + struct Frustum + { + float left; + float right; + float bottom; + float top; + + Frustum(); + Frustum(float, float, float, float); + }; + unsigned target_width; unsigned target_height; float render_aspect; @@ -20,12 +31,16 @@ protected: public: virtual ~StereoCombiner() { } +protected: + void configure_eye_frustums(const Frustum &, const Frustum &); +public: float get_target_width() const { return target_width; } float get_target_height() const { return target_height; } float get_render_aspect() const { return render_aspect; } const Geometry::Angle &get_field_of_view() const { return fov; } float get_frustum_skew() const { return frustum_skew; } + virtual void prepare() const { } virtual void render(const GL::Texture2D &, const GL::Texture2D &) const = 0; };