X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Fstereocombiner.h;h=5439aeba673da3a0d46de75a60e1445995e2dd7a;hp=a4b91bfbf9edfa82c477301a5df26e74e0961911;hb=11d105c5183b401e5f52e9abb16cf659298cf035;hpb=cf1b08401da851dd98cde45d9e4acf6e1d185224 diff --git a/source/stereocombiner.h b/source/stereocombiner.h index a4b91bf..5439aeb 100644 --- a/source/stereocombiner.h +++ b/source/stereocombiner.h @@ -1,34 +1,36 @@ -#ifndef MSP_GL_STEREOCOMBINER_H_ -#define MSP_GL_STEREOCOMBINER_H_ +#ifndef MSP_VR_STEREOCOMBINER_H_ +#define MSP_VR_STEREOCOMBINER_H_ #include +#include namespace Msp { -namespace GL { - -class Texture2D; +namespace VR { class StereoCombiner { protected: - unsigned width_div; - unsigned height_div; - bool keep_aspect; + unsigned target_width; + unsigned target_height; + float render_aspect; Geometry::Angle fov; + float frustum_skew; StereoCombiner(); public: virtual ~StereoCombiner() { } - unsigned get_width_divisor() const { return width_div; } - unsigned get_height_divisor() const { return height_div; } - bool is_aspect_kept() const { return keep_aspect; } + 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 render(const Texture2D &, const Texture2D &) const = 0; + virtual void prepare() const { } + virtual void render(const GL::Texture2D &, const GL::Texture2D &) const = 0; }; -} // namespace GL +} // namespace VR } // namespace Msp #endif