]> git.tdb.fi Git - libs/vr.git/blobdiff - source/oculusriftcombiner.h
Convert Oculus code to use SDK 0.4.4
[libs/vr.git] / source / oculusriftcombiner.h
index ede2fe91e481585de3e72bb165a8b4481a96b44f..435ccb3f18b0bc903a10d462efcd7ebe5188a46c 100644 (file)
@@ -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 <msp/gl/mesh.h>
+#include <msp/gl/program.h>
+#include <msp/gl/programdata.h>
 #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