Convert Oculus code to use SDK 0.4.4
[libs/vr.git] / source / oculusriftcombiner.h
index afb5573453b99345edf9900b7c245dc03215122f..435ccb3f18b0bc903a10d462efcd7ebe5188a46c 100644 (file)
@@ -9,6 +9,8 @@
 namespace Msp {
 namespace VR {
 
+class OculusRiftDevice;
+
 /**
 Presents a stereo view in a way suitable for an Oculus Rift HMD.  All distances
 are specified in multiples of the screen width.
@@ -16,34 +18,15 @@ are specified in multiples of the screen width.
 class OculusRiftCombiner: public StereoCombiner
 {
 private:
-       GL::Mesh mesh;
+       const OculusRiftDevice &device;
+       GL::Mesh left_mesh;
+       GL::Mesh right_mesh;
        GL::Program shprog;
-       GL::ProgramData left_shdata;
-       GL::ProgramData right_shdata;
-       float view_distance;
-       float lens_separation;
-       float eye_separation;
-       float distortion[4];
-       float chromatic[4];
-       float fill_factor;
+       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_red_aberration(float = 1.0f, float = 0.0f);
-       void set_blue_aberration(float = 1.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 GL::Texture2D &, const GL::Texture2D &) const;
 };