]> git.tdb.fi Git - libs/vr.git/blobdiff - source/ovr/oculusriftsystem.h
Rename DisplayDevice to System
[libs/vr.git] / source / ovr / oculusriftsystem.h
diff --git a/source/ovr/oculusriftsystem.h b/source/ovr/oculusriftsystem.h
new file mode 100644 (file)
index 0000000..20a4a5e
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef MSP_VR_OCULUSRIFTSYSTEM_H_
+#define MSP_VR_OCULUSRIFTSYSTEM_H_
+
+#include <msp/vr/system.h>
+#include "oculusriftcamera.h"
+#include "oculusriftcombiner.h"
+
+namespace Msp {
+namespace VR {
+
+class OculusRiftSystem: public System
+{
+public:
+       struct Private;
+
+private:
+       Private *priv;
+       unsigned frame_index;
+       bool timing_active;
+
+       static unsigned n_instances;
+
+public:
+       OculusRiftSystem();
+       virtual ~OculusRiftSystem();
+
+       const Private &get_private() const { return *priv; }
+
+       virtual void configure_window(Graphics::Window &) const;
+       virtual void configure_view(StereoView &) const;
+       virtual OculusRiftCamera *create_camera(const GL::Camera &);
+       virtual OculusRiftCombiner *create_combiner(GL::View &);
+
+       void begin_frame();
+       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