X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fovr%2Foculusriftdevice.h;fp=source%2Fovr%2Foculusriftdevice.h;h=a5105d603181dea5682a8528b11a4c38a3e06853;hb=12044b218363bdd93f9fc1b3c71167d700144e45;hp=0000000000000000000000000000000000000000;hpb=8d1197440f07062a1020d902619ae8e9a494baa0;p=libs%2Fvr.git diff --git a/source/ovr/oculusriftdevice.h b/source/ovr/oculusriftdevice.h new file mode 100644 index 0000000..a5105d6 --- /dev/null +++ b/source/ovr/oculusriftdevice.h @@ -0,0 +1,44 @@ +#ifndef MSP_VR_OCULUSRIFTDEVICE_H_ +#define MSP_VR_OCULUSRIFTDEVICE_H_ + +#include +#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