X-Git-Url: http://git.tdb.fi/?p=libs%2Fvr.git;a=blobdiff_plain;f=source%2Fovr%2Foculusriftsystem.h;fp=source%2Fovr%2Foculusriftsystem.h;h=20a4a5e0e948d73778ceb139f64214f7864dfe52;hp=0000000000000000000000000000000000000000;hb=b6de7d24475dec8f5d6b8148a69cf8b561bc0761;hpb=c07c707c480f4e989caee17541187f08f136d216 diff --git a/source/ovr/oculusriftsystem.h b/source/ovr/oculusriftsystem.h new file mode 100644 index 0000000..20a4a5e --- /dev/null +++ b/source/ovr/oculusriftsystem.h @@ -0,0 +1,45 @@ +#ifndef MSP_VR_OCULUSRIFTSYSTEM_H_ +#define MSP_VR_OCULUSRIFTSYSTEM_H_ + +#include +#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