]> git.tdb.fi Git - libs/vr.git/blobdiff - source/ovr/oculusriftcombiner.h
Make LibOVR support optional at compile-time
[libs/vr.git] / source / ovr / oculusriftcombiner.h
diff --git a/source/ovr/oculusriftcombiner.h b/source/ovr/oculusriftcombiner.h
new file mode 100644 (file)
index 0000000..65809a3
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef MSP_VR_OCULUSRIFTCOMBINER_H_
+#define MSP_VR_OCULUSRIFTCOMBINER_H_
+
+#include <msp/gl/mesh.h>
+#include <msp/gl/program.h>
+#include <msp/gl/programdata.h>
+#include <msp/vr/stereocombiner.h>
+
+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.
+*/
+class OculusRiftCombiner: public StereoCombiner
+{
+private:
+       const OculusRiftDevice &device;
+       GL::Mesh left_mesh;
+       GL::Mesh right_mesh;
+       GL::Program shprog;
+       mutable GL::ProgramData left_shdata;
+       mutable GL::ProgramData right_shdata;
+
+public:
+       OculusRiftCombiner(const OculusRiftDevice &);
+
+       virtual void render(const GL::Texture2D &, const GL::Texture2D &) const;
+};
+
+} // namespace VR
+} // namespace Msp
+
+#endif