]> git.tdb.fi Git - libs/vr.git/blobdiff - source/ovr/oculusriftdevice.h
Make LibOVR support optional at compile-time
[libs/vr.git] / source / ovr / oculusriftdevice.h
diff --git a/source/ovr/oculusriftdevice.h b/source/ovr/oculusriftdevice.h
new file mode 100644 (file)
index 0000000..a5105d6
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef MSP_VR_OCULUSRIFTDEVICE_H_
+#define MSP_VR_OCULUSRIFTDEVICE_H_
+
+#include <msp/vr/displaydevice.h>
+#include "oculusriftcamera.h"
+#include "oculusriftcombiner.h"
+
+namespace Msp {
+namespace VR {
+
+class OculusRiftDevice: public DisplayDevice
+{
+public:
+       struct Private;
+
+private:
+       Private *priv;
+       unsigned frame_index;
+       bool timing_active;
+
+       static unsigned n_instances;
+
+public:
+       OculusRiftDevice();
+       virtual ~OculusRiftDevice();
+
+       const Private &get_private() const { return *priv; }
+
+       virtual void configure_view(StereoView &) const;
+       virtual OculusRiftCamera *create_camera(const GL::Camera &) const;
+       virtual OculusRiftCombiner *create_combiner() const;
+
+       virtual void begin_frame();
+       virtual void end_frame();
+       bool is_timing_active() const { return timing_active; }
+       double get_tracking_time() const;
+       double get_timewarp_time() const;
+       double get_current_time() const;
+};
+
+} // namespace VR
+} // namespace Msp
+
+#endif