X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Foculusriftcombiner.h;h=435ccb3f18b0bc903a10d462efcd7ebe5188a46c;hp=ede2fe91e481585de3e72bb165a8b4481a96b44f;hb=654b8083e06fb9f3338f7148bfd30b6305c7c5be;hpb=3d83f3acedfdd428807313986eefaf5bcd64b7e8 diff --git a/source/oculusriftcombiner.h b/source/oculusriftcombiner.h index ede2fe9..435ccb3 100644 --- a/source/oculusriftcombiner.h +++ b/source/oculusriftcombiner.h @@ -1,13 +1,15 @@ -#ifndef MSP_GL_OCULUSRIFTCOMBINER_H_ -#define MSP_GL_OCULUSRIFTCOMBINER_H_ +#ifndef MSP_VR_OCULUSRIFTCOMBINER_H_ +#define MSP_VR_OCULUSRIFTCOMBINER_H_ -#include "mesh.h" -#include "program.h" -#include "programdata.h" +#include +#include +#include #include "stereocombiner.h" namespace Msp { -namespace GL { +namespace VR { + +class OculusRiftDevice; /** Presents a stereo view in a way suitable for an Oculus Rift HMD. All distances @@ -16,35 +18,19 @@ are specified in multiples of the screen width. class OculusRiftCombiner: public StereoCombiner { private: - Mesh mesh; - Program shprog; - ProgramData left_shdata; - ProgramData right_shdata; - float view_distance; - float lens_separation; - float eye_separation; - float distortion[4]; - float fill_factor; + const OculusRiftDevice &device; + GL::Mesh left_mesh; + GL::Mesh right_mesh; + GL::Program shprog; + GL::ProgramData shdata; public: - OculusRiftCombiner(); - - void set_view_distance(float); - void set_lens_separation(float); - void set_eye_separation(float); - void set_distortion(float = 1.0f, float = 0.0f, float = 0.0f, float = 0.0f); - void set_fill_factor(float); -private: - void update_parameters(); + OculusRiftCombiner(const OculusRiftDevice &); - float distort(float) const; - float undistort(float) const; - -public: - virtual void render(const Texture2D &, const Texture2D &) const; + virtual void render(const GL::Texture2D &, const GL::Texture2D &) const; }; -} // namespace GL +} // namespace VR } // namespace Msp #endif